我有一个类,我在控件中使用它来定义颜色:
public class ColorModel : INotifyPropertyChanged {
public Color Color{ get { ... } set { ... } }
}
我还有一个类,我希望用它来定义双色 LinearGradient Brushes :
public class GradientModel : INotifyPropertyChanged {
public Color First{ get { ... } set { ... } }
public Color Last{ get { ... } set { ... } }
}
这两个类都用作负责定义其各自值的控件的 DataContext。
我希望能够使用我定义的 ColorModel 来指示 GradientModel 的 First 和 Last 颜色的值(使用两个单独的控件,每个控件都包含一个 ColorModel 作为 DataContext )。
我正在努力尽可能地遵守 MVVM。
我怎样才能完成这项任务?
最佳答案
实现此目的的另一种方法是定义您的 GradientModel
如下:
public class GradientModel : INotifyPropertyChanged {
public ColorModel First{ get { ... } set { ... } }
public ColorModel Last{ get { ... } set { ... } }
}
也就是说,而不是将属性定义为
Color
, 将它们定义为 ColorModel
.然后在构造函数中订阅PropertyChanged
事件并相应地更新您的成员。注意:您必须从
First
更新绑定(bind)路径至First.Color
等等。
关于c# - 是否可以将数据上下文的属性绑定(bind)到另一个数据上下文的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35678504/