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

Zoo*_*Way 2 data-binding wpf

我有一个没有路径的绑定使用转换器.这是因为转换器将使用对象的许多属性来构建工具提示的文本.但是当一个属性更改(实现INotifyPropertyChanged并引发OnPropertyChanged)时,不带路径的此绑定不会更新.我猜是因为它没有绑定到特定的属性.

如何判断它必须更新?


我试着更具体:

bar对象具有"Start"属性.当我更改此栏时,栏会及时移动,因为绑定直接到达Start属性.因此,通知适用于单个属性.但工具提示绑定是{Binding Converter={StaticResource TooltipConverter}}并且不绑定到特定属性.当"开始"更改时,条形图会移动,但工具提示不会更新,因为不会再次调用tooltipconverter.

酒吧是一个对象ObservableCollection<Bar>.栏应该告诉收藏品还是视图模型?通常与它没有任何关系.

Zoo*_*Way 6

一种可能的解决方法是:

为您的对象提供ItSelf属性(或其他名称),如:

public Object ItSelf
{
    get { return this; }
}
Run Code Online (Sandbox Code Playgroud)

而不是绑定

{Binding Converter={StaticResource TooltipConverter}}
Run Code Online (Sandbox Code Playgroud)

使用

{Binding ItSelf, Converter={StaticResource TooltipConverter}}
Run Code Online (Sandbox Code Playgroud)

然后你OnPropertyChanged为每个财产筹集''ItSelf''.因此,只要在绑定中使用整个对象,就可以发出更新信号.

public DateTime Start
{
    get { return this.start; }
    set { this.start = value; OnPropertyChanged("Start"); OnPropertyChanged("ItSelf");
}
Run Code Online (Sandbox Code Playgroud)

AttachedBehavior让它的工作速度提高了一些,但是想像@AnatoliiG所说的那样测试一下,所以我稍后会接受一个答案.