【发布时间】:2011-03-08 11:04:33
【问题描述】:
我的视图的代码隐藏文件中有这段代码:
private string GetSelectedSchoolclassCode()
{
return ((SchoolclassCode)cboSchooclassCodeList.SelectedItem).SchoolclassCodeName;
}
private void dgTimeTable_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
var columnNumber = dgTimeTable.CurrentCell.Column.DisplayIndex;
var timetable = dgTimeTable.CurrentItem as TimeTableViewModel;
switch (columnNumber)
{
case 0: timetable.SchoolclassCodeMonday = GetItemValue(timetable.SchoolclassCodeMonday); break;
case 1: timetable.SchoolclassCodeTuesday = GetItemValue(timetable.SchoolclassCodeTuesday); break;
case 2: timetable.SchoolclassCodeWednesday = GetItemValue(timetable.SchoolclassCodeWednesday); break;
case 3: timetable.SchoolclassCodeThursday = GetItemValue(timetable.SchoolclassCodeThursday); break;
case 4: timetable.SchoolclassCodeFriday = GetItemValue(timetable.SchoolclassCodeFriday); break;
case 5: timetable.SchoolclassCodeSaturday = GetItemValue(timetable.SchoolclassCodeSaturday); break;
case 6: timetable.SchoolclassCodeSunday = GetItemValue(timetable.SchoolclassCodeSunday); break;
}
}
private string GetItemValue(string schoolclassCodeWeekDay)
{
if (schoolclassCodeWeekDay == null)
schoolclassCodeWeekDay = GetSelectedSchoolclassCode();
else
schoolclassCodeWeekDay = null;
return schoolclassCodeWeekDay;
}
我想将所有这些代码放在 ViewModel 中。 问题已经从 XAML 中的 CurrentColumn.DisplayIndex 开始。我不能用绑定声明它,因为语法是不允许的。 WPF 认为 DisplayIndex 是一个附加属性...
你会怎么做?
【问题讨论】:
-
“WPF 认为”是什么意思?如果你正在做绑定,你可以而且必须提供完整的路径,如果它不明显,那么 Source.没有思考。除此之外,这个开关很糟糕。枚举具有数值,可以写在一行中。
标签: wpf mvvm refactoring code-behind