Я пишу приложение WPF в MVVM, используя MVVM Light. У меня есть триггер события в DataGrid для обнаружения окончания редактирования ячейки.
В viewmodel У меня есть команда, которой нужен элемент привязки DataGrid в качестве параметра. Я сделал это, используя приведение DataGridCellEditEndingEventArgs.EditingElement.DataContext к моей модели. Это работает, как я хочу, но это сложно для тестирования VM.
Вот триггер View
// xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
<DataGrid x:Name="PeopleDataGrid" ItemsSource="{Binding People}" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="CellEditEnding">
<cmd:EventToCommand PassEventArgsToCommand="True" Command="{Binding EditPersonRowCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
А в VM вот команда
public RelayCommand<DataGridCellEditEndingEventArgs> EditPersonRowCommand
{
get
{
return editPersonRowCommand ??
(editPersonRowCommand =
new RelayCommand<DataGridCellEditEndingEventArgs>(param => this.EditPersonRow(param.EditingElement.DataContext as PersonForListDto), this.editPersonRowCommandCanExecute));
}
}
Возможно использовать IValueConverterили что-то для правильной модели модели без контрольного приведения?