绑定属性始终返回false,但WPF绑定复选框仍处于选中状态

绑定属性始终返回false,但WPF绑定复选框仍处于选中状态,wpf,data-binding,checkbox,Wpf,Data Binding,Checkbox,我在UserControl中有一个复选框: 它绑定到属性为IsExistingTemplate的DataContext,该属性始终返回False。(在我的实际应用程序中,它并不总是返回False!)。DataContext实现INotifyPropertyChanged 公共场所?存在模板 { 得到 { 返回false; } 设置 { OnPropertyChanged(“IsExistingTemplate”) } } 当用户单击复选框时,复选框始终显示一个勾号 当用户单击复选框时,我

我在UserControl中有一个复选框:


它绑定到属性为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;
    }
}