我有一个班级Item
。我的窗口显示了包含这些项目的TreeView,右侧有一个详细信息表单(用于编辑Item
的名称)。
无论如何,当我在TextBox中编辑项目名称然后按下取消按钮(调用Context.Refresh(StoreWins, myItemEntity)
)时,UI不会立即使用数据库中的旧值更新 - 我必须切换,例如到树中的另一个实体然后它会更新。
这里似乎有什么问题?
答案 0 :(得分:1)
只是为了完成这个问题。
在我的情况下,问题是TreeView实际上绑定到包含item属性的对象,例如:
class ItemContainer
{
public Item Item { get; set; }
}
所以它是另一个实体的导航属性。这说我们可以说TreeView没有,显然检查了props中的变化,当导航属性发生变化时,EntityObject类不会触发PropertyChanged事件。对此的修复是要么具有替代属性(不是由EF自动生成),它将触发AssociationChanged事件处理程序内的OnPropertyChanged。
或者如果使用POCO它甚至更简单 - 在您的虚拟属性项中,您可以立即触发OnPropertyChanged:)