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

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

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

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

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

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

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

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

1 ответ

Решение

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

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

Другие вопросы по тегам