更改datagrid的数据源

时间:2014-08-02 20:41:06

标签: c# wpf datagrid

我尝试了太长时间来解决这个问题:

我使用一个带有4个“级联”数据网格的窗口。意味着,当更改第一个数据网格的选定项目时,所有“跟随”数据网格都会更改其完整内容。

因此我使用

之类的东西
ObservableCollection<LocalShape> shapeList = new ObservableCollection<LocalShape>();

作为数据源,其中

    struct LocalShape
    {
        public string shapeName { set; get; }
        public System.Windows.Media.ImageSource shapePicture { set; get; }
    };

是我收藏的一个例子。

要更改内容我尝试使用shapeList.Clear()并收到错误,不明白为什么。

1 个答案:

答案 0 :(得分:0)

当您绑定到某个收藏集和所选项目时,所选项目的值必须位于您的收藏中。

如果您更改了集合并且所选项目不再是其中的一部分,当他控制尝试更新到新集合时,它正在查找所选项目以突出显示。如果它没有找到它,你会得到一个例外。

正在更改集合导致此异常爆炸。在更改集合之前,首先测试新集合中是否存在所选项目,如果不存在,则将所选项目设置为空。