MVVM Madness: Команды

Мне нравится MVVM. Я неэто не нравится, но нравится. Большая часть этого имеет смысл. Но я продолжаю читать статьи, которые побуждают вас писать много кода, чтобы вы могли писать XAML и неЯ должен написать любой код в коде позади.

Позвольте привести пример.

Недавно я хотел подключить команду в моей ViewModel к ListView MouseDoubleClickEvent. Я не былЯ не совсем уверен, как это сделать. К счастью, у Google есть ответы на все вопросы. Я нашел следующие статьи:

http://blog.functionalfun.net/2008/09/hooking-up-commands-to-events-in-wpf.htmlhttp://joyfulwpf.blogspot.com/2009/05/mvvm-invoking-command-on-attached-event.htmlhttp://sachabarber.net/?p=514http://geekswithblogs.net/HouseOfBilz/archive/2009/08/27/adventures-in-mvvm-ndash-binding-commands-to-any-event.aspxhttp://marlongrech.wordpress.com/2008/12/13/attachedcommandbehavior-v2-aka-acb/

Хотя решения помогли мне понять команды, были проблемы. Некоторые из вышеупомянутых решений сделали дизайнер WPF непригодным для использования из-за распространенного подхода к добавлению ».Внутренний» после свойства зависимости; дизайнер WPF можетне могу найти это, но CLR может. Некоторые из решений неРазрешить несколько команд для одного элемента управления. Некоторые из решений неразрешить параметры.

После нескольких часов экспериментов я просто решил сделать это:

private void ListView_MouseDoubleClick(object sender, MouseButtonEventArgs e) {
    ListView lv = sender as ListView;
    MyViewModel vm = this.DataContext as MyViewModel;

    vm.DoSomethingCommand.Execute(lv.SelectedItem);
}

Итак, пуристы MVVM, пожалуйста, скажите мне, чтоне так с этим? Я все еще могу проверить мою команду. Это кажется очень практичным, но, кажется, нарушает принцип "ZOMG ... у вас есть код в вашем коде позади! " Пожалуйста, поделитесь своими мыслями.

Спасибо заранее. Я

Ответы на вопрос(7)

Ваш ответ на вопрос