我是 wpf 和 c# 编程新手。 我有一个数据网格的小问题。 网格绑定(bind)在 EF 表上。
我可以查看和更改所有字段并将更改保存到数据库中。 问题是。当我通过 context.savechanges 将数据保存到 SQL 数据库时,SQL-Server-Table 上的触发器修改了记录中的某些字段。
当在保存命令后重新加载当前项目的实体时,我可以在我的实体中看到修改后的数据,但在我的 UI 中看不到。 我必须制作 datagrid.items.refresh 才能看到更改。但是刷新性能不佳,我松开了当前的单元格位置。 我需要一种方法,在 UI 中的字段更改后,将 SQL-Server 对当前记录的任何更改动态推送到 UI。
有人有什么想法吗?
在窗口上的简单文本框元素中,我可以使用 BindingExpression 通过 binding.UpdateTarget 推送更改。但在 DatagridTextColumn 中是不可能的。
最佳答案
你的实体类应该实现 INotifyPropertyChanged接口(interface)并在数据绑定(bind)属性设置为新值时引发更改通知。
如果您使用自动生成的实体类,则需要修改生成这些实体类的模板:
How to get property change notifications with EF 4.x DbContext generator
或者您可以绑定(bind)到您自己实现此接口(interface)的包装类:
Implement INotifyPropertyChanged on generated Entity Framework classes
关于c# - 绑定(bind) UI 元素不通过 Itemsource 中的更改值刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46195566/