【问题标题】:INotifyPropertyChange does not update converter-based values?INotifyPropertyChange 不更新基于转换器的值?
【发布时间】:2009-09-18 17:34:35
【问题描述】:

我有一张由ValueConverter 设置来源的图片:

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

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

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

【问题讨论】:

    标签: wpf binding inotifypropertychanged valueconverter


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        路径很重要:

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

        【讨论】:

          猜你喜欢
          • 2011-06-18
          • 2022-01-11
          • 1970-01-01
          • 2021-02-04
          • 2020-04-17
          • 1970-01-01
          • 2014-12-24
          • 2022-01-26
          • 1970-01-01
          相关资源
          最近更新 更多