在事件发生时更新多个属性

Update multiple properties on event raised

我正在尝试了解如何在新数据可用时触发所有属性更新。

例如我有两个属性:

    public string PropertyOne
    {
        get
        {
            return _propertyOne
        }
        set
        {
            _propertyOne= value;
            this.OnPropertyChanged();
        }
    }

    public string PropertyTwo
    {
        get
        {
            return _propertyTwo;
        }
        set
        {
            _propertyTwo = value;
            this.OnPropertyChanged();
        }
    }

当我收到有关新数据的通知时,我分配我的属性:

Mediator<ViewModelMessages>.Instance.Register(ViewModelMessages.OnNewData, this.OnNewData);

private void OnNewData(object obj)
{
      PropertyOne = (MyClass)obj.propertyOne;
      PropertyTwo = (MyClass)obj.propertyTwo;
}

我想要的是这样的:

private MyClass _myClass;

private void OnNewData(object obj)
{
     _myClass = (MyClass)obj;
}

public string PropertyOne
{
    get
    {
         return _myClass.PropertyOne;
    }
    set
    {
         _myClass.PropertyOne = value;
         this.OnPropertyChanged();
 }
    }

 public string PropertyTwo
 {
     get
     {
         return _myClass.propertyTwo;
     }
     set
     {
         _myClass.propertyTwo = value;
         this.OnPropertyChanged();
     }
  }

所以当新数据到达时,我的属性会自动更新。

您可以通过将空字符串或 null 传递给 OnPropertyChanged 而不是 属性 名称来实现这一点,但请注意,在这种情况下,所有属性都会引发 属性 changed。