我有两个属性我正在设置两个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(所以我可以将其值与其他代码一起使用)?