gpt4 book ai didi

直接绑定(bind)到带转换器的 DataContext 时 WPF 更新绑定(bind)

转载 作者:行者123 更新时间:2023-12-04 05:01:20 24 4
gpt4 key购买 nike

通常,当您希望数据绑定(bind)控件“更新”时,您使用“PropertyChanged”事件向接口(interface)发出信号,表明数据在后台发生了更改。

例如,您可以有一个文本 block ,该文本 block 通过属性“DisplayText”绑定(bind)到数据上下文
<TextBlock Text="{Binding Path=DisplayText}"/>
从这里开始,如果 DataContext 使用 PropertyName“DisplayText”引发 PropertyChanged 事件,那么这个文本 block 的文本应该更新(假设您没有更改绑定(bind)的模式)。

但是,我有一个更复杂的绑定(bind),它使用数据上下文的许多属性来确定控件的最终外观。为此,我直接绑定(bind)到数据上下文并使用转换器。在这种情况下,我正在使用图像源。
<Image Source="{Binding Converter={StaticResource ImageConverter}}"/>
如您所见,我使用没有路径的 {Binding} 直接绑定(bind)到数据上下文,并使用 ImageConverter 来选择我正在寻找的图像。但现在我没有办法(据我所知)告诉绑定(bind)更新。我尝试用“。”引发 propertychanged 事件。作为属性名称,它不起作用。

这可能吗?我是否必须将转换逻辑包装成绑定(bind)可以附加到的属性,或者有没有办法告诉绑定(bind)刷新(无需显式刷新绑定(bind))?

任何帮助将不胜感激。
谢谢!
-亚当

最佳答案

这里的解决方法是向我的对象(用作数据上下文)添加一个名为 "Self"的属性,它只是返回
public Object Self { get { return this; }}
然后在绑定(bind)中我使用了这个属性:
<Image Source="{Binding Path=Self, Converter={StaticResource ImageConverter}}"/>
然后当我打电话
PropertyChanged(this, new PropertyChangedEventArgs("Self"))
它就像一个魅力。

谢谢大家。

关于直接绑定(bind)到带转换器的 DataContext 时 WPF 更新绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2670606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com