由ValueConverter设置的UserControl IsEnabled属性值被忽略

时间:2015-10-06 06:40:19

标签: wpf xaml user-controls ivalueconverter

这是在MVVM项目中。我在另一个UserControl中有一个WPF UserControl,如下所示:

<UserControl x:Class="MyProject.ParentUserControl" ...>
    <local:ChildUserControl DataContext="{Binding ChildViewModel}" IsEnabled="{Binding ChildViewModel, Converter={StaticResource n2bf}}" />
</UserControl>

我的n2bf资源是我的NullToBooleanConverter,如果False方法Convertvalue,则返回null。调试显示转换器正常工作。

但是,当我运行程序时,ChildUserControl实例已启用。我使用了Snoop工具,令我惊讶的是它显示IsEnabled属性在本地设置为True

我在所有情况下都将Convert方法更改为返回false,但UserControl仍然在运行时启用。但是,当我将我的XAML更改为此时,它可以正常工作:

<local:ChildUserControl DataContext="{Binding ChildViewModel}" IsEnabled="False" />

那么为什么我的Converter中的False值被忽略而IsEnabled属性设置为True

0 个答案:

没有答案