在调用ObservableCollection <t> .Clear()之后更新绑定到T的UI元素</t>

时间:2013-11-03 22:06:28

标签: wpf

栈,

我正在为WPF中的注册表格进行原型设计。用户指定他们的啤酒偏好。啤酒是enum

PersonModelObservableCollection<Beer>名为BeerPreferences

PersonViewModel重新项目BeerPreferences,用于PersonView中的复选框绑定。例如,他们是:IsLaggerPreferredIsPaleAlePreferredIsIPAPreferred。他们的实现每个都检查,添加,删除Beer集合中的BeerPreferences枚举。

我想将bool属性HasNoPreference添加到PersonViewModel,当设置为true时,将清除之前所做的任何选择。 HasNoPreference getter调用BeerPreferences.Clear()。

如果选中PersonView,如何通知IsLaggerPreferred更新绑定到IsPaleAlePreferredIsIPAPreferredHasNoPreference的复选框?

从根本上说,HasNoPreference会触发间接瞬态操作。如何触发毫无防备的UI元素进行刷新?

一种方法是从使用Beer枚举变为实现INPC的类。我喜欢使用Beer enum的简单性。我还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

您应该从PropertyChanged("IsLaggerPreferred")二传手致电PropertyChanged("IsPaleAlePreferred")PropertyChanged("IsIPAPreferred")HasNoPreference。或者您可以PropertyChanged("")更新绑定到视图模型的每个UI控件。