【发布时间】:2021-08-20 09:05:17
【问题描述】:
我有两个属性,一个是名为Items 的集合,另一个是Item。该集合绑定到一个数据网格,当我双击数据网格时,选择被加载到Item,它通过Item.Name 绑定到一个文本框。当我将文本修改到文本框中时,由于UpdateSourceTrigger=PropertyChanged,更改会反映到 Datagrid 中。我的问题是,当我取消此更改时,我使用_context.Entry(Item).Reload(); 从数据库重新加载实体,但OnPropertyChanged 从未触发。我还尝试在重新加载后致电OnPropertyChanged(nameof(Item)),但没有成功。唯一似乎起作用的就是休耕:
_itemRepository.Reload(Item);
Item.Name = Item.Name;
//OnPropertyChanged(nameof(Post));
这是错误还是功能?如何在不使用此 hack 的情况下更新我的 UI。 我在 .NET 5 和 EF Core 5 上使用 WPF。
物品型号:
public class Item : BaseEntity
{
private string _name;
public string Name
{
get => _name;
set
{
_name = value;
OnPropertyChanged(nameof(Name));
}
}
}
更新:
直到我有时间在最小环境中进行测试,例如BionicCode sugested,我得到了快速修复:
Datagrid.Items.Refresh();
【问题讨论】:
-
你能展示你的模型类吗?
标签: wpf entity-framework-core .net-5 ef-core-5.0