Вот мой вопрос.У меня есть UserControl
, который оборачивает группу кнопок, и это выглядит так: (я показываю 2 кнопки, чтобы проиллюстрировать, что это)пойти по соглашению и создать Cancel
и Delete
методы на моей виртуальной машине.Итак, XAML представления выглядит чисто.
Я хочу создать пользовательский элемент управления, который будет иметь ту же функциональность.Внутри управления мне придется обрабатывать события onClick
для кнопок, и я хотел бы вызывать методы на ВМ так же, как это работает сейчас.Как будет выглядеть мой код?Думаю, мне нужно получить программный доступ к DataContext
и как-то вызвать метод по имени.Я предполагаю использовать контроль следующим образом:
<myToolBar Mode="SaveExitDelete" />
Итак, это будет хорошо и коротко.Но myToolBar
покажет 3 кнопки, и эти кнопки будут вызывать 3 метода (названных в соответствии с соглашением) в DataContext.
Любые указатели?
РЕДАКТИРОВАТЬ
Главный вопрос заключается в том, как программно связать команду или метод с кнопкой.Я понимаю, как работает команда, я использую PRISM, и у него есть встроенный DelegateCommand, который я могу использовать.Я не знаю, как создать связывание программно, когда я знаю имя метода или имя команды.
Вот как я вижу, как это работает:
var button = new DitatToolbarButton();
button.Caption = "Cancel &\nExit";
button.Icon = new BitmapImage(new Uri("img_btn_cancel.png", UriKind.Relative));
button.Command = Binding("CancelCommand");
Очевидно3-я строка неверна, но это то, что я хочу.Я хочу иметь возможность жестко закодировать строку, которая будет содержать имя команды, которую я буду ожидать от виртуальной машины.