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 и манипулировать данными перед сохранением / обновлением / отменой.
Вот так мы решили похожий сценарий.