Ada*_*dam 8 data-binding wpf datacontext propertychanged
通常,当您希望数据绑定控件"更新"时,使用"PropertyChanged"事件向接口发出数据在幕后发生更改的信号.
例如,您可以使用属性"DisplayText"绑定到datacontext的文本块
<TextBlock Text="{Binding Path=DisplayText}"/>
从这里,如果DataContext使用PropertyName"DisplayText"引发PropertyChanged事件,则此文本块的文本应该更新(假设您没有更改绑定的模式).
但是,我有一个更复杂的绑定,它使用datacontext的许多属性来确定控件的最终外观.为此,我直接绑定到datacontext并使用转换器.在这种情况下,我正在使用图像源.
<Image Source="{Binding Converter={StaticResource ImageConverter}}"/>
如您所见,我使用没有路径的{Binding}直接绑定到datacontext,我使用ImageConverter选择我正在寻找的图像.但现在我无法(我知道)告诉绑定更新.我试着用"."来提高propertychanged事件.作为属性名称,它不起作用.
这可能吗?我是否必须将转换逻辑包装到绑定可以附加到的属性中,或者有没有办法告诉绑定刷新(没有明确刷新绑定)?
任何帮助将不胜感激.谢谢!-亚当
Ada*_*dam 20
这里的解决方法是向我的对象添加一个属性(用作datacontext),称为"Self",它只返回
public Object Self { get { return this; }}
然后在绑定中我使用了这个属性:
<Image Source="{Binding Path=Self, Converter={StaticResource ImageConverter}}"/>
然后当我打电话
PropertyChanged(this, new PropertyChangedEventArgs("Self"))
它就像一个魅力.
谢谢大家.
| 归档时间: |
|
| 查看次数: |
5402 次 |
| 最近记录: |