WPF 绑定没有带转换器的路径,更新

2023-11-30

我有一个没有使用转换器的路径的绑定。这是因为转换器将使用对象的许多属性来构建工具提示的文本。但是,当一个属性发生更改(实现 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(使用前将#替换为@)

WPF 绑定没有带转换器的路径,更新 的相关文章

随机推荐