我有一个没有使用转换器的路径的绑定。这是因为转换器将使用对象的许多属性来构建工具提示的文本。但是,当一个属性发生更改(实现 INotifyPropertyChanged 并引发 OnPropertyChanged)时,这种没有路径的绑定不会更新。我猜是因为它不绑定到特定属性。
如何判断它必须更新?
我尝试更具体:
条形对象具有“开始”属性。当我更改此设置时,栏会及时移动,因为绑定直接到达 Start 属性。因此该通知适用于单个属性。但工具提示绑定是{Binding Converter={StaticResource TooltipConverter}}
并且不绑定到特定属性。当“开始”更改时,栏会移动,但工具提示不会更新,因为不会再次调用 tooltipconverter。
酒吧是一个对象ObservableCollection<Bar>
。栏应该告诉集合还是视图模型?正常情况下是不会有任何关系的。
一种可能的解决方法是:
给你的对象一个ItSelf财产(或其他名称),例如:
public Object ItSelf
{
get { return this; }
}
而不是绑定
{Binding Converter={StaticResource TooltipConverter}}
use
{Binding ItSelf, Converter={StaticResource TooltipConverter}}
然后你加注OnPropertyChanged
每个属性的“ItSelf”。因此,只要在绑定中使用整个对象,您就可以发出更新信号。
public DateTime Start
{
get { return this.start; }
set { this.start = value; OnPropertyChanged("Start"); OnPropertyChanged("ItSelf");
}
我让它工作得更快一点,但想测试一下AttachedBehavior
对于这一点,就像 @AnatoliiG 所说的那样,所以我稍后会接受答案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)