gpt4 book ai didi

c# - WPF 网格 IsEnabled 使用 ValueConverter

转载 作者:太空宇宙 更新时间:2023-11-03 19:30:58 26 4
gpt4 key购买 nike

我有一个带有 Grid 和 TreeView 的 WPF 窗口。网格的数据上下文绑定(bind)到 TreeView 上的选定项。但是,因为并非所有 treeviewitem 都适用,所以如果 treviewitem 不适用,我想禁用网格。因此,我创建了一个值转换器来进行空检查并返回一个 bool 值。 (在这种情况下,适用项不会为空)

问题是从未使用过值转换器。我设置了断点,它们永远不会被击中。我还有其他正在使用的值转换器,它们都工作得很好。

有什么我想念的吗?

<Grid Grid.Column="1" Grid.Row="0" DataContext="{Binding MyVal}" IsEnabled="{Binding MyVal, Converter={StaticResource NullCheckConverter}}" Margin="2,2,2,2">

这对这个问题来说并不重要,但这是 ValueConverter 代码:

internal class NullCheckValueConverter : IValueConverter
{
#region IValueConverter Members

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return !(value == null);
}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}

#endregion
}

最佳答案

那是因为您将 DataContext 绑定(bind)到与绑定(bind) IsEnabled 相同的值。所以对于 IsEnabled 它实际上是在寻找 MyVal.MyVal。替换为:

IsEnabled="{Binding Converter={StaticResource NullCheckConverter}}" 

此外,如果您遇到绑定(bind)问题,请在 Debug模式输出窗口中检查绑定(bind)错误。

关于c# - WPF 网格 IsEnabled 使用 ValueConverter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4961875/

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