MVVM Light EventToCommand и Silverlight DataForm - мне нужны EventArgs и пользовательский CommandParameter. Возможный? - PullRequest
0 голосов
/ 27 августа 2011

У меня есть DataForm, привязанный к коллекции объектов RoleViewModel. Я использую поведение MVVMLight EventToCommand, связанное с событием EditEnding DataForm, чтобы информировать мою ViewModel об изменении роли.

Теперь ... пользователь редактирует роль и может либо нажать «ОК», «Отмена», либо он может просто уйти. Эта информация хранится в свойстве DataFormEditAction в DataFormEditEndedEventArgs (OK DataFormEditAction.Commit, остальные DataFormEditAction.Cancel).

Проблема в том, что мне нужно выбрать, выбрать ли я PassEventArgsToCommand, делая подпись команды RelayCommand<DataFormEditEndedEventArgs>, или я связываю CurrentItem DataForm с CommandParameter поведения, делая подпись RelayCommand<RoleViewModel>. Мне понадобятся оба .

Мне нужно EventArgs, чтобы узнать, отменил ли пользователь изменение или нет, и мне нужна новая Роль, чтобы сохранить его обратно в базу данных, если он не отменил его.

У кого-нибудь есть какие-нибудь умные предложения здесь? Думаю, я мог бы испачкать руки и создать второе поведение с двумя параметрами, но я бы предпочел этого, если есть более элегантное решение.

Любая помощь будет принята с благодарностью.

Заранее спасибо.

1 Ответ

2 голосов
/ 10 октября 2011

Если ваша модель представления содержит привязываемое значение новой роли к форме данных, то вы можете использовать PassEventArgsToCommand и манипулировать данными перед сохранением / обновлением / отменой.

Так мы решили похожий сценарий.

...