我有一些绑定绑定到实体框架定义的对象。我的一些绑定更新正常,而其他绑定则不更新。解释的最好方法是通过一个例子,我有这样的事情:WPF绑定到实体框架不更新
<TextBlock Text="{Binding Path=FirstName}"/>
<TextBlock Text="{Binding Path=LastName}"/>
<TextBlock Text="{Binding Path=Role.Name}"/>
在这种情况下,在第2周的TextBlocks文本精细只要对象的属性发生变化更新。在最后一个例子中没有任何反应。我可以看到为什么会发生这种情况。实体框架有一个属性RoleID,该属性正在更新,它正在引发RoleID的属性更改事件,但它不会引发Role的这种事件。所以绑定不知道什么改变了。我可以看到的可能解决方案是让实体框架在更改RoleID时为Role提升属性已更改事件,或者让绑定在RoleID而不是Role中查找更改。我不知道该如何做。
预先感谢任何答复, 迈克尔
谢谢杰里,这两个我已经知道。问题是实体框架实现了INotifyPropertyChanged,但仅为RoleID属性提升它,但不提供角色。因此,我的绑定不知道更新,因为它的绑定路径是Role.Name。关于设置UpdateSourceTrigger = PropertyChanged,这仅适用于文本框被更改但我使用只读元素(文本块),所以这不会帮助。当实体框架对象更新时,我需要触发对绑定的更新。 – MikeKulls 2011-06-19 23:38:00
也许你可以把它标记为答案(根据你的后续答案)?谢谢。 – 2011-06-20 22:27:04