相互依赖的属性的模式

时间:2015-03-25 17:02:32

标签: c# wpf

我的ViewModel中有一个属性会影响另一个属性,例如SelectedDate和ReferenceDate。

每当SelectedDate更改时,ReferenceDate会自动设置为低于SelectedDate的值,这当然要求在ui中更新这两个值。 E.g:

public SelectedDate
{
    set
    {
        _selectedDate = value;
        _referentialDate = value.AddDays(-1);
        RaisePropertyChanged("SelectedDate");
        RaisePropertyChanged("ReferentialDate");
    }
}

使用属性更改机制处理此更新,该机制还负责加载相关数据。仅对于ReferentialDate也应该是相同的:

public ReferentialDate
{
    set
    {
        _referentialDate = value;
        RaisePropertyChanged("ReferentialDate");
    }
}

不幸的是,当SelectedDate发生更改时,此实现会导致ReferentialDate被调用两次。是否有一些模式或解决方案可以防止多次调用ReferentialDate?

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题:

public SelectedDate
{
    set
    {
      _selectedDate = value;
      ReferentialDate = value.AddDays(-1);
      RaisePropertyChanged("SelectedDate");          
    }
}