Предоставляет ли Prism (CAL) способ привязки команды, например, к событию MouseClick?

Недавно я заглянул в Prism (также известную как Библиотека составных приложений для WPF), и мне очень понравилось, как с ее помощью я могу структурировать свои приложения.

Однако есть один недостаток, который я никак не мог решить. Можно ли привязать команду (например, из ViewModel) к событию (например, RightMouseButtonDown) через Prism?

Это было бы ключевым требованием к приложению, которое я пытаюсь создать, и было бы обидно, если бы я не смог использовать Prism только из-за отсутствия этой функции.

С уважением, Crischu


person chrischu    schedule 13.07.2009    source источник


Ответы (2)


Хотя он не является частью Prism, вы можете использовать AttachedBehaviours от Марлона Греча.

person Cameron MacFarland    schedule 13.07.2009

Это не часть Prism, но вы можете определить обработчики ввода на уровне окна в WPF с помощью следующего кода:

<Window.InputBindings>
    <MouseBinding MouseAction="RightClick" Command="RightClickCommand"/>
</Window.InputBindings>

Затем он будет запускать RightClickCommand, определенный в его текущем DataContext (ViewModel для окна), всякий раз, когда щелкают RightMouse внутри окна и не захватывает какой-либо другой элемент управления в логическом дереве - событие всплывает из управление прямо под мышкой.

person Martin Harris    schedule 13.07.2009
comment
проблема в том, что вы не можете использовать привязку к своей команде или CommandParameter - person Jack Ukleja; 08.03.2010