我在我的XAML文件中有以下代码,带有一个非常简单的复选框.选中该复选框后,它将我的属性设置为true.但是,当我取消选中该复选框时,在使用convertBack函数中的断点进行调试时,我可以看到该值为null.我甚至试图设置IsThreeState = false,但仍然无法正常工作.谁知道为什么?
<Window.Resources>
<this:DebugValueConverter x:Key="debugConverter"/>
</Window.Resources>
<StackPanel>
<CheckBox Content="Testing" IsThreeState="False"
IsChecked="{Binding CheckBoxValue,
Converter={StaticResource debugConverter},
FallbackValue=false,TargetNullValue=false}"
/>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
CheckBoxValue是我的视图模型中的bool属性.
转换器类是:public class DebugValueConverter:IValueConverter {#region IValueConverter成员
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value;
}
#endregion
}
Run Code Online (Sandbox Code Playgroud)
这只是因为你有TargetNullValue=false你的Binding.这意味着false您的CheckBoxValue房产的价值将被转换为null您的转换器所看到的价值.