我尝试了太长时间来解决这个问题:
我使用一个带有4个“级联”数据网格的窗口。意味着,当更改第一个数据网格的选定项目时,所有“跟随”数据网格都会更改其完整内容。
因此我使用
之类的东西ObservableCollection<LocalShape> shapeList = new ObservableCollection<LocalShape>();
作为数据源,其中
struct LocalShape
{
public string shapeName { set; get; }
public System.Windows.Media.ImageSource shapePicture { set; get; }
};
是我收藏的一个例子。
要更改内容我尝试使用shapeList.Clear()并收到错误,不明白为什么。
答案 0 :(得分:0)
当您绑定到某个收藏集和所选项目时,所选项目的值必须位于您的收藏中。
如果您更改了集合并且所选项目不再是其中的一部分,当他控制尝试更新到新集合时,它正在查找所选项目以突出显示。如果它没有找到它,你会得到一个例外。
正在更改集合导致此异常爆炸。在更改集合之前,首先测试新集合中是否存在所选项目,如果不存在,则将所选项目设置为空。