У меня есть UserControl, который используется для отображения двух разных видов ViewModels (оба являются в основном сеткой, отображающей данные).комплект/использование EventToCommand в зависимости состояние?
ViewModel A предназначен для отображения данных определенного типа, а при двойном щелчке он выполняет какое-либо действие для редактирования этой строки.
ViewModel B используется только для отображения других данных.
Для ViewModel А мне нужно, чтобы иметь эту простую EventToCommand из MVVM-Light
<i:Interaction.Triggers>
<i:EventTrigger EventName="RowDoubleClick">
<cmd:EventToCommand Command="{Binding EditCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
В ViewModel B, я не хочу иметь редактирования на RowDoubleClick, и даже не имеют Свойство EditCommand в ViewModel.
Итак, вопрос: могу ли я, чтобы EventToCommand применялся в соответствии с свойством Bool WithDoubleClick, которое присутствует в обеих моделях ViewModels?
И если вам не нравится видеть исключения в вашем окне вывода, просто добавьте EditCommand во вторую модель представления и установите для этого пустого метода в свой конструктор следующим образом: EditCommand = new RelayCommand (() => { }); Однако, как и @Sheridan, вы можете захотеть найти способ следовать шаблону One View, One View Model. –
Спасибо за ваши комментарии. Я закончил с пустой «EditCommand». Я использую один вид для различных ViewModels, потому что они _almost_ одинаковы, у меня много экранов для отображения сеток данных, они отличаются столбцами в сетке и еще несколько вещей, которые настраиваются свойствами в каждой ViewModel – Ricardo