【问题标题】:Binding UI-Element not Refresh by Change value in Itemsource绑定 UI 元素不通过 Itemsource 中的更改值刷新
【发布时间】:2017-09-13 10:50:21
【问题描述】:

我是使用 wpf 和 c# 编程的新手。 我对数据网格有一个小问题。 网格绑定在 EF-Table 上。

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

在保存命令后何时重新加载 currentItem 的实体,我可以在我的实体中看到修改后的数据,但在我的 UI 中看不到。 我必须创建一个 datagrid.items.refresh 才能看到更改。但是刷新效果不佳,我失去了当前的单元格位置。 我需要一种方法,在 UI 中的字段发生更改后,将当前记录上的 SQL-Server 的任何更改即时推送到 UI。

有人有什么想法吗?

在窗口上的简单文本框元素中,我可以使用 BindingExpression 通过 binding.UpdateTarget 推送更改。但这在 DatagridTextColumn 中是不可能的。

【问题讨论】:

  • 你可以在你的实体类中实现INotifyPropertyChanged

标签: c# wpf entity-framework data-binding datagrid


【解决方案1】:

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

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

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

或者您可以绑定到您自己的实现此接口的包装类:

Implement INotifyPropertyChanged on generated Entity Framework classes

【讨论】:

    猜你喜欢
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 2020-10-27
    • 1970-01-01
    • 2011-03-21
    • 2014-02-26
    • 1970-01-01
    相关资源
    最近更新 更多