我有一个源设置为 a 的图像ValueConverter
:
<Image Source="{Binding Converter={StaticResource siConv}}" Width="16" Height="16"/>
当绑定对象引发PropertyChanged
事件(来自INotifyPropertyChanged
)时,图像不会改变。我认为这是因为 WPF 不知道转换器查看哪些字段。
当某个属性发生变化时,如何告诉 WPF 重新绑定/重新运行此转换器?
我有一个源设置为 a 的图像ValueConverter
:
<Image Source="{Binding Converter={StaticResource siConv}}" Width="16" Height="16"/>
当绑定对象引发PropertyChanged
事件(来自INotifyPropertyChanged
)时,图像不会改变。我认为这是因为 WPF 不知道转换器查看哪些字段。
当某个属性发生变化时,如何告诉 WPF 重新绑定/重新运行此转换器?
这里的答案是使用数据触发器,而不是值转换器。触发器直接绑定到属性,并获取 propertychanged 事件。此外,还省去了编写一堆一次性价值转换器的麻烦。
如果您真的打算编写 ValueConverter,则可以使用 MultiValueConverter 以及您希望 WPF 框架监控的所有值。对这些值的任何更改,框架都会更新它绑定到的值。
路径很重要:
<Image Source="{Binding Converter={StaticResource siConv}, ConverterParameter=yourproperty, Path=yourproperty, UpdateSourceTrigger=PropertyChanged}" Width="16" Height="16"/>