WPF / MVVM:需要支持方法/功能逻辑的属性声明

时间:2015-07-01 16:51:11

标签: wpf mvvm

我有两个属性我正在设置两个WPF组合框:一个用于月份,一个用于日期。 MonthIndex属性如下所示:

private int monthIndex = DateTime.Today.Month - 1;

public int MonthIndex
{
    get { return monthIndex; }
    set
    {
        if (monthIndex != value)
        {
            monthIndex = value;
            RaisePropertyChanged("MonthIndex");
        }
    }
} 

我需要设置DayIndex属性,但与Month属性不同,它需要计算 - 不能使用简单声明,如

private int _dayIndex = DateTime.Today.Day - 1;

每个日历日可以有0个或更多活动。例如,如果6/30有三个事件,则这些事件将被存储为30,30.1和30.2(在ObservableCollection DaysList和每个事件的相应索引中)。

以下是DayIndex的XAML,声明和方法:

查看

<ComboBox Name="cboDay"
          ItemsSource="{Binding DaysList, Mode=OneTime}"
          DisplayMemberPath="fltDay"
          SelectedIndex="{Binding DayIndex, Mode=TwoWay}"
          IsEditable="True" />

视图模型

public ObservableCollection<Day> DaysList { get; set; }
private int _dayIndex;

public int DayIndex
{
    get
    {
        // perform some calculation logic;
        return _dayIndex;
    }

    set
    {
        if (_dayIndex != value)
        {
            _dayIndex = value;
            RaisePropertyChanged("DayIndex");
        }
    }
}

如何处理dayIndex的声明,使其保持更新为monthIndex does(所以我可以将其值与其他代码一起使用)?

0 个答案:

没有答案