我有一些WPF DataGrid数据。您可以通过单独的窗口添加行。 DataContext是相同的,一个LINQ到SQL的对象。绑定也是一样的,我将“ItemsSource”属性绑定到一个表。如何刷新WPF DataGrid?
在另一个窗口中,当用户点击“保存”时,我以编程方式创建一个行并使用“InsertOnSubmit”添加它。之后,我使用DataContext的“SubmitChanges”方法。
我的问题是DataGrid没有更新。如果我重新启动应用程序,我可以看到新行,所以它在数据库中,但我找不到刷新DataGrid的方法。
到目前为止,我试图在DataGrid的BindingExpression上使用“UpdateTarget”,但它没有帮助。我也尝试过“dataGrid.Items.Refresh()” - 相同的结果。我怎样才能解决这个问题?
您的解决方案显然工作。我只是认为我可以用简单的XAML绑定标记离开。 – KovBal 2009-06-02 19:20:45
如果我们使用ObservableCollection作为linq到sql与控件之间的桥梁,那么我们如何使用SubmitChanges()将结果回发到数据库? – MemoryLeak 2010-07-27 10:36:56
@MemoryLeak - 所以这是棘手的一点;您不仅希望知道* collection *更改的时间(即INotifyCollectionChanged),还希望知道任何*项*的更改时间。因此,您需要订阅收藏更改,然后添加/删除,订阅每个项目的INotifyPropertyChanged。 *然后*您必须根据您收到的通知来决定保存什么 – 2010-07-27 22:08:20