Je le code dans mon fichier code-behind de mon point de vue:WPF/MVVM: refactorisation de code-behind pour le rendre prêt à MVVM lier
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;
}
Je voudrais mettre tout ce code dans le ViewModel . Le problème commence déjà avec le CurrentColumn.DisplayIndex en XAML. Je ne peux pas le déclarer avec une liaison car la syntaxe n'est pas autorisée. WPF pense que DisplayIndex est une propriété attachée ...
Que feriez-vous?
Que signifie "WPF pense"? Si vous faites une liaison vous pouvez et devez fournir le chemin complet et si ce n'est pas évident alors aussi Source. Il n'y a pas de réflexion. D'ailleurs ce changement est terrible; les énumérations ont des valeurs numériques et peuvent être écrites sur une ligne. – kubal5003
Il n'y a pas d'enums ... – msfanboy