C# 启动时未选中WPF复选框(数据绑定)
我的C# 启动时未选中WPF复选框(数据绑定),c#,wpf,data-binding,mvvm,checkbox,C#,Wpf,Data Binding,Mvvm,Checkbox,我的复选框数据绑定遇到了这个问题。情况是: 当我初始化用户界面(启动应用程序)时,复选框es被取消选中,尽管它们绑定到的属性被设置为true。单击复选框时,属性设置为false,但复选框仍显示为未选中。从现在起,数据绑定按预期工作,并且复选框与绑定属性正确同步 以下是我的XAML代码: <ItemsControl ItemsSource="{Binding Path=DisplayTypes}"> <ItemsControl.ItemsPanel>
复选框
数据绑定遇到了这个问题。情况是:
当我初始化用户界面(启动应用程序)时,复选框
es被取消选中,尽管它们绑定到的属性被设置为true。单击复选框
时,属性设置为false,但复选框
仍显示为未选中。从现在起,数据绑定按预期工作,并且复选框
与绑定属性正确同步
以下是我的XAML代码:
<ItemsControl ItemsSource="{Binding Path=DisplayTypes}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate DataType="{x:Type Presentation:TypeDisplayPair}">
<CheckBox IsChecked="{Binding Display}" Margin="3">
<TextBlock Text="{Binding Type}" Foreground="{Binding Color}" />
</CheckBox>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
非常感谢您的任何建议,因为我花了太多时间调试这个,我已经没有什么想法了。您提供的代码完全正确,您的初始化问题可能来自您分配
数据上下文的方式。我尝试了以下方法:
public Window1()
{
DataContext = this;
DisplayTypes = new ObservableCollection<TypeDisplayPair>()
{
new TypeDisplayPair("Alpha", true),
new TypeDisplayPair("Beta", false)
};
InitializeComponent();
}
公共窗口1()
{
DataContext=this;
DisplayTypes=新的ObservableCollection()
{
新的TypeDisplayPair(“Alpha”,真),
新类型显示对(“Beta”,false)
};
初始化组件();
}
它的工作原理与预期一致
public Window1()
{
DataContext = this;
DisplayTypes = new ObservableCollection<TypeDisplayPair>()
{
new TypeDisplayPair("Alpha", true),
new TypeDisplayPair("Beta", false)
};
InitializeComponent();
}