Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF C#复选框在ItemsControl中检查绑定_C#_.net_Wpf_Data Binding - Fatal编程技术网

WPF C#复选框在ItemsControl中检查绑定

WPF C#复选框在ItemsControl中检查绑定,c#,.net,wpf,data-binding,C#,.net,Wpf,Data Binding,我有一个ItemsControl绑定到一个布尔数组。项目只是复选框: 在VM中,ItemsControl绑定到一个布尔数组: private bool[]a=新bool[5]{true,true,false,true,false}; 公共图书馆 { get=>a; set=>SetProperty(参考a,值); } (SetProperty函数设置新值并引发OnPropertyChanged) 因此,当我运行该程序时,我可以看到ItemsControl正确地获取了值,但在单击复选框后,它

我有一个ItemsControl绑定到一个布尔数组。项目只是复选框:


在VM中,ItemsControl绑定到一个布尔数组:

private bool[]a=新bool[5]{true,true,false,true,false};
公共图书馆
{
get=>a;
set=>SetProperty(参考a,值);
}
(SetProperty函数设置新值并引发OnPropertyChanged)

因此,当我运行该程序时,我可以看到ItemsControl正确地获取了值,但在单击复选框后,它不会设置任何值。就像我将绑定模式设置为单向一样。为什么?


提前谢谢,我希望这个问题不会重复。

那不行。您必须将ItemsSource绑定到具有布尔属性的对象集合,而不是布尔集合。@Clemens这听起来像是一个答案,但我真的需要创建另一个包含唯一布尔属性的空类吗?是的。item类必须实现INotifyPropertyChanged,bool属性设置程序必须触发PropertyChanged事件。但是,ItemsSource绑定到的集合属性可能是只读的,例如像
public observeableCollection Items{get;}=new observeableCollection()如果将命令添加到复选框,则可以使其工作。在命令处理程序中,您可以更改数组中的相应项,并为完整属性增加通知。不是最优的,而是另一种可能性。“困难在于通过索引。”克莱门斯我刚刚试过,这对我来说真的很有效。非常感谢您快速的回答!