MVVM - раскадровка триггера в модели представления в Silverlight - PullRequest
3 голосов
/ 31 марта 2010

У меня есть несколько раскадровок, которые я хотел бы вызвать из ViewModel, если это возможно. Есть ли простой способ или элегантный способ сделать это. Вот что я пытаюсь сделать.

Персона щелкает по кнопке -> RelayCommand (в ViewModel), после чего команда Relay должна играть раскадровку Также еще одна вещь, я хотел бы также запустить анимацию раскадровки в ViewModel без какого-либо взаимодействия.

    <i:Interaction.Triggers>
 <i:EventTrigger EventName="MouseLeftButtonDown">
    <cmd:EventToCommand Command="{Binding ButtonPress}"                                                     CommandParameterValue="RedButtonLight">
    </cmd:EventToCommand>
         </i:EventTrigger>
          </i:Interaction.Triggers> 

Ответы [ 4 ]

5 голосов
/ 17 декабря 2010

Я знаю, что это давно.Но я написал подробный пост в блоге о Triggering Storyboards и MVVM.

http://mark.mymonster.nl/2010/12/14/trigger-a-storyboard-on-viewmodel-changes/

1 голос
/ 31 марта 2010

Взгляните на примеры выражений .Существует триггер для событий из текста данных.DataEventTrigger

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

Затем ваша модель представления может вызвать событие как часть командыа также в другое время.

1 голос
/ 31 марта 2010

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

Если это не так, то я бы использовал свойство презентации (ViewModel), чтобы указать, что презентация находится в состоянии, и чтобы представление реагировало на событие PropertyChanged и запускало раскадровку. Предполагается, что вы внедрили INotifyPropertyChanged в свой класс Presentation.

0 голосов
/ 03 мая 2011

Вот как вы можете сделать это в смеси, не касаясь строки xaml или кода: http://www.basarat.com/2011/05/expression-blend-starting-storyboard.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...