【发布时间】:2019-02-12 14:04:43
【问题描述】:
基本上,我有一个高度为 PX 和 MM 的图像(用于打印)。作为“派生”属性,我有 µm / px 值:
public int HeightPX { get { return _HeightPX; } private set { _HeightPX = value; RaisePropertyChanged(); }
public int HeightMM { get { return _HeightMM; } set { _HeightMM = value; RaisePropertyChanged(); }
public double MUpPX { get {return HeightPX != 0 ? HeightMM * 1000 / HeightPX : 0; } }
所有这些都通过绑定显示在 WPF 文本框中。
Text="{Binding ImageThing.MUpPX, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
但是,当更改 HeightPX 或 HeightMM 时,MUpPX 显然会更改,但不会触发 PropertyChanged 事件,因此不会在 GUI 中更新。
我怎样才能做到这一点?我可以在MUpPX 中以某种方式监听Height 的PropertyChanged 事件,然后触发相应的事件吗?
我想避免从Height 触发事件,因为可能/将会有其他派生属性,如果我必须处理“父”中的每个派生属性,这将不是一个非常干净的抽象。 .
【问题讨论】:
-
看看this question。我在那里提供了一个答案,其中包含基于属性的方法的示例。
标签: c# wpf data-binding inotifypropertychanged