将项添加到List <customclass>,它是DataBinded到DataGrid

时间:2016-12-21 19:32:27

标签: c# wpf data-binding datagrid

基本上我想要做的是将一个新项添加到DataGrid中,该DataGrid具有DataBinded List&lt;&gt;它。我已经尝试了我能想到的一切,但我总是得到“An ItemsControl与其items source不一致”的异常。如果有人能帮助我,我会很高兴

2 个答案:

答案 0 :(得分:1)

您是否将项目添加到数据绑定列表&lt; CustomClass&gt;在后台线程?然后你可以使用调度程序来编组Add调用以支持UI线程:

Application.Current.Dispatcher.BeginInvoke(new Action(()=> { yourCollection.Add(yourItem); })));

对修改源集合的所有“添加”和“删除”操作执行此操作。

您还应该替换List&lt; CustomClass&gt;使用ObservableCollection&lt;&gt;如果您希望DataGrid在项目添加到源集合时自动更新。 ObservableCollection提供更改通知,但List不提供:http://msdn.microsoft.com/en-us/library/ms668604%28v=vs.110%29.aspx

还要确保将项添加到源集合而不是DataGrid控件的Items属性。

答案 1 :(得分:0)

尝试在EnableCollectionSynchronization上使用ItemsSource方法。