上面显示我的DataGrid.dataGrid_Loaded()方法创建了几个“记录”并将它们添加到我的DataGrid使用其“ItemsSource”的列表中
在第156行,我有另一条记录被注释掉(在grid.ItemsSource设置之后)。如果我重新添加该行,我的代码就会中断。必须有办法用新数据更新我的DataGrid,但是如何?
感谢您的帮助!
当我取消注释第156行时,我得到:
PresentationFramework.dll中出现未处理的“System.InvalidOperationException”类型异常
其他信息:ItemsControl与其商品来源不一致。
有关详细信息,请参阅内部异常。
答案 0 :(得分:0)
您需要在更改之前清除ItemsSource
:
List<string> items = new List<string>() { "a", "b" };
dataGrid.ItemsSource = items;
// some code
dataGrid.ItemsSource = null;
items.Add("c");
dataGrid.ItemsSource = items;
// dataGrid contains: "a", "b", "c"
您可能希望使用ObservableCollection<T>
并在XAML中使用绑定 - 项目会自动更新。