绑定属性始终返回false,但WPF绑定复选框仍处于选中状态
我在UserControl中有一个复选框:绑定属性始终返回false,但WPF绑定复选框仍处于选中状态,wpf,data-binding,checkbox,Wpf,Data Binding,Checkbox,我在UserControl中有一个复选框: 它绑定到属性为IsExistingTemplate的DataContext,该属性始终返回False。(在我的实际应用程序中,它并不总是返回False!)。DataContext实现INotifyPropertyChanged 公共场所?存在模板 { 得到 { 返回false; } 设置 { OnPropertyChanged(“IsExistingTemplate”) } } 当用户单击复选框时,复选框始终显示一个勾号 当用户单击复选框时,我
它绑定到属性为IsExistingTemplate的DataContext,该属性始终返回False。(在我的实际应用程序中,它并不总是返回False!)。DataContext实现INotifyPropertyChanged
公共场所?存在模板
{
得到
{
返回false;
}
设置
{
OnPropertyChanged(“IsExistingTemplate”)
}
}
当用户单击复选框时,复选框始终显示一个勾号
当用户单击复选框时,我如何强制该复选框不显示勾号?我记得有一个非常类似的问题,但我找不到解决问题的位置和方法。我认为这个问题是由WPF如何更新绑定引起的,并且我认为我在某个地方读到,使用一个简单地传递值的IValueConverter可以解决这个问题,但是我已经测试过了,它似乎不起作用。它应该可以工作,因为使用转换器应该使绑定重新计算 您可以随时处理复选框上的单击事件,并通过代码更新值,但这感觉太脏了。对不起,我帮不上什么忙了
<StackPanel.Resources>
<local:PassThroughConverter x:Key="PassThroughConverter" />
</StackPanel.Resources>
<CheckBox IsChecked="{Binding IsExistingTemplate, Converter={StaticResource PassThroughConverter}}" Content="Stuff"/>
public class PassThroughConverter : 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;
}
}
公共类直通转换器:IValueConverter
{
公共对象转换(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性)
{
返回值;
}
公共对象转换回(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性)
{
返回值;
}
}
请发布您现有的模板代码。
<StackPanel.Resources>
<local:PassThroughConverter x:Key="PassThroughConverter" />
</StackPanel.Resources>
<CheckBox IsChecked="{Binding IsExistingTemplate, Converter={StaticResource PassThroughConverter}}" Content="Stuff"/>
public class PassThroughConverter : 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;
}
}