通过更改Itemsource中的值无法刷新绑定UI元素

通过更改Itemsource中的值无法刷新绑定UI元素

问题描述:

我是通过在wpf和c#中编程来实现新功能的。 我有一个数据网格的小问题。 网格绑定在EF表上。通过更改Itemsource中的值无法刷新绑定UI元素

我可以看到并更改所有字段并将更改保存到数据库。 问题是。当我通过context.savechanges将数据保存到SQL数据库时,SQL-Server-Table上的触发器修改了记录中的一些字段。

什么时候在保存命令后重新加载currentItem的实体,我可以在我的实体中看到修改的数据,但在我的用户界面中看不到。 我必须做一个datagrid.items.refresh来查看更改。但刷新不是高性能的,我放松了当前的细胞位置。 我需要一种方法,在用户界面中的字段更改后,将当前记录上的SQL-Server上的任何更改随时推送到UI。

有没有人有一些想法?

在一个窗口上的simpel TextBox-Element上,我可以使用BindingExpression通过binding.UpdateTarget推送更改。但在DatagridTextColumn中是不可能的。

+0

你可以在你的实体类实现'INotifyPropertyChanged'。 – dymanoid

实体类应实现INotifyPropertyChanged接口,并在数据绑定属性设置为新值时引发更改通知。

如果您正在使用自动生成的实体类,就需要修改,这些都是从生成的模板:

How to get property change notifications with EF 4.x DbContext generator

或者你可以绑定到做实现这个接口自己的包装类:

Implement INotifyPropertyChanged on generated Entity Framework classes