INotifyPropertyChanged不会更新基于转换器的值?

时间:2009-09-18 17:34:36

标签: wpf binding inotifypropertychanged valueconverter

我的图片来源为ValueConverter

<Image Source="{Binding Converter={StaticResource siConv}}" Width="16" Height="16"/>

当绑定对象引发PropertyChanged事件(来自INotifyPropertyChanged)时,图像不会更改。我认为这是因为WPF不知道转换器看到的字段。

当某个属性发生变化时,如何告诉WPF重新绑定/重新运行此转换器?

3 个答案:

答案 0 :(得分:2)

这里的答案是使用数据触发器,而不是值转换器。触发器直接绑定到属性,并获取propertychanged事件。另外,节省了写一堆一次性值转换器的费用。

                                                                           

答案 1 :(得分:2)

如果您真的打算编写ValueConverter,可以使用MultiValueConverter,其中包含您希望WPF框架监视的所有值。对这些值的任何更改,框架都会更新绑定到的值。

答案 2 :(得分:2)

路径很重要:

<Image Source="{Binding Converter={StaticResource siConv}, ConverterParameter=yourproperty, Path=yourproperty, UpdateSourceTrigger=PropertyChanged}"  Width="16" Height="16"/>