gpt4 book ai didi

xaml - 将可见性绑定(bind)到 DataContext

转载 作者:行者123 更新时间:2023-12-01 04:38:40 25 4
gpt4 key购买 nike

我有一个值转换器,可将 null 转换为 Visibility.Collapsed。现在我尝试在用户控件中使用它,以便当 DateContext 为 null 时整个控件会崩溃

控件看起来像这样:

<UserControl x:Class="PhoneApp.Controls.Header"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Visibility="{Binding Converter={StaticResource ToVisibility}}"
d:DesignHeight="150" d:DesignWidth="480"> <-- some body here -->

它是这样使用的

<my:Header DataContext="{Binding SectionHeader}"/>

其中 SectionHeader 是 View 模型属性。

我有一个类似的控件,我不绑定(bind) DataContext 但一些自定义 DP 和折叠在那里工作正常。但是,在这一个中,值转换器似乎仅在 SectionHeader != null 时被调用。当它为 null 时,控件呈现为空子项。

我考虑过不在此处使用 DataContext,但控件使用它更简洁。

为什么绑定(bind)到 DataContext 不起作用?你有什么建议?

最佳答案

在这种情况下,当 DataContext 为 null 时,绑定(bind)将使用 TargetNullValue 中指定的值属性(property)。所以只需设置 TargetNullValue=Collapsed 就可以了:

Visibility="{Binding TargetNullValue=Collapsed}"

引用:[ How to Set TargetNullValue to Visibility.Collapsed in Binding ]

关于xaml - 将可见性绑定(bind)到 DataContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21791828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com