.net - 在代码中都实现 INotifyPropertyChanged 的​​两个对象的属性之间的绑定(bind)

标签 .net wpf binding

我正在尝试绑定(bind)两个不同对象的两个属性,这两个对象都实现了 INotifyPropertyChanged在代码中:

    public class ClassA : INotifyPropertyChanged
    {
        // leaving out the INotifyPropertyChanged Members for brevity

        public string Status
        {
            get { return _Status; }
            set { _Status = value; RaiseChanged("Status"); }
        }

    }

    public class ClassB : INotifyPropertyChanged
    {
        // leaving out the INotifyPropertyChanged Members for brevity

        public string Status
        {
            get { return _Status; }
            set { _Status = value; RaiseChanged("Status"); }
        }

    }

有没有一种方法可以将代码中的这两个属性绑定(bind)在一起,就像如果其中一个是“正确的”依赖属性一样,我会这样做?
像这样的东西?
ClassA classA = new ClassA();
ClassB classB = new ClassB();

Binding bind = new Binding("Status");
bind.Source = classA;
classB.SetBinding(ClassB.StatusProperty, bind);

谢谢!

最佳答案

迟到的回应,但是……亲吻:

ClassA classA = new ClassA();
ClassB classB = new ClassB();

classA.PropertyChanged += (s, e) => {
    if (e.PropertyName == "Status")
        classB.Status = classA.Status;
};

瞧,INPC 对象之间的“绑定(bind)”:) 如果您打算经常这样做,您可以轻松地创建一个非常简单的帮助程序类,只需一个方法调用即可为您完成此操作。

关于.net - 在代码中都实现 INotifyPropertyChanged 的​​两个对象的属性之间的绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9946735/

相关文章:

c# - 异步测试在 Nunit 2.6.2 中挂起

.net - 是否有 System.Windows.SystemColors 的视觉指南?

c# - JScript 中的异步

.net - 更改WPF按钮的形状而无需更改其他样式

c# - 条件编译题

c# - WPF - 我可以使用常量作为资源键名称吗?

wpf - Silverlight 是否适合大型 LOB 应用程序

标签内容上的 WPF StringFormat

mvvm - 获取ListView祖先的DataContext

python - YouTube Python API