Есть ли что-то вроде команд WPF в Oxygene?

Я только начинаю работать с Oxygene.

Я пытаюсь сделать небольшой проект WPF с шаблоном MVVM. Пока это работает, но я не могу найти способ реализовать команды в оксигенте.

Кто-нибудь знает, можно ли это сделать и если да, то как?


person Gert Hermans    schedule 24.05.2013    source источник


Ответы (1)


Сначала вам нужно создать статический класс в том же проекте, что и форма. так:

Command = public static class 
  public
    SomeCommand: RoutedCommand := new RoutedCommand();
end;

Затем вам нужно создать псевдоним пространства имен XAML (в XAML вашей формы):

xmlns:Local="clr-namespace:YourProjectNameSpace" 

Предположим, у вас есть кнопка на форме, и вы хотите подключить ее к команде:

 <Button Content="Some Button" Command="{x:Static Local:Command.SomeCommand}" />

Следующим шагом является настройка того, что должна делать команда... В моем случае я просто подключил лямбда-выражение, но вы можете использовать шаблон MVVM, чтобы делегировать это поведение куда-то еще.

Я сделал это в загрузке формы:

self.CommandBindings.Add(new CommandBinding(Command.SomeCommand, (ss,ee) -> 
begin
  //Do Stuff
  //Do some more stuff
end));
person JeroenVandezande    schedule 25.05.2013