Хорошая практика для хранения RelayCommand в MVVM - PullRequest
1 голос
/ 13 января 2012

Мне нужно настроить различные команды для ViewModel, такие как Close, Edit, Cancel, ShowPic, ShowVideo.
На основании разных ViewModel, у меня есть общие команды, такие как Close, Edit, Cancel, которые выполняют одну и ту же операцию, только контекст можетбудь другим.Затем для других, таких как ShowPic, ShowVideo, они принадлежат их собственным моделям представления.

В таких сценариях, как рекомендуется организовать свои команды:

  1. Вы размещаете их все в отдельномВызов класса "Команды"?
  2. Помещаете ли вы их в соответствующие модели ViewMells, даже если некоторые из них являются общими?
  3. Вы разделяете общие команды от других?

Спасибо заВаш совет и пример, как бы вы их организовали.

Ответы [ 2 ]

0 голосов
/ 13 января 2012

ответ "2".

Даже если другие ViewModel имеют те же команды, это ваши внедренные сервисы (прочитайте «IoC», если вы не знаете, о чем я говорю), которые делают тяжелую работу в ваших ViewModels и позволяют вам избежать избыточности логика.

0 голосов
/ 13 января 2012

Некоторые команды, которые не являются специфичными для вида (например, «Печать», «Сохранить» и т. Д., Которые имеют общие функциональные возможности, независимые от вида), могут быть объявлены как статические в некоторых статических Uility классах с обработчиками Execute и CanExecute и могут быть связан с использованием атрибута x:Static в XAML.

Но команды, которые являются специфическими для просмотра, должны находиться в ViewModel.

...