我有一个绑定到数据网格的列表,项目的属性是布尔值,并绑定到数据网格中的复选框。
如何只允许选中一个复选框?
例如,如果选中了一个复选框,则应取消选中其他复选框。
到目前为止,我已经尝试了什么(在ViewModel中,Update是布尔属性):
var update = item.Update;
Items.ForEach(x => x.Update = false);
Items = new List<Item>(Items);
item.Update = update;
但这不是有效的,它抛出一个Exception,表明列表被修改(集合被修改;枚举操作可能不执行)。
有没有一种有效的方法来完成这项工作?
Edit:我使用Binding绑定列表,列表来自类型List〈〉,列表的项实现INotifyPropertyChanged
1条答案
按热度按时间oaxa6hgo1#
我已经注解了您在此代码中遇到的问题:
您应该有
ObservableCollection<Items> Items
,这样如果您从列表中添加/删除项目,绑定将跟随Item
实现INotifyPropertyChanged
。由于ObservableCollection
不支持ForEach
,您的代码将变为: