2010-03-30 5 views
3

가능하면 ViewModel에서 트리거하려는 몇 개의 Storyboard가 있습니다. 이렇게하는 간단한 방법이나 우아한 방법이 있습니까? 여기 내가하려는 일이 있습니다.MVVM-Trigger Storyboard (Silverlight의보기 모델)

사람 버튼 -> RelayCommand (ViewModel에서)를 클릭하면 릴레이 명령이 스토리 보드를 재생해야합니다. 또한 한 가지 더, 나는 상호 작용없이 ViewModel에서 스토리 보드 애니메이션 자체를 트리거하고 싶습니다. 버튼 클릭이보기 관련 일에 전력을 순수하고 실제 애플리케이션 로직을 수행하지 않을 경우

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

답변

1

, 나는 당신이보기 클래스의 코드 숨김에서이 ​​모든 것을 할 수 있다고 주장 할 것이다.

이것이 사실이 아니라면 프리젠 테이션 (ViewModel)의 속성을 사용하여 프리젠 테이션이 상태에 있음을 알리고보기가 PropertyChanged 이벤트에 반응하고 스토리 보드를 시작하게 할 수 있습니다. 이것은 Presentation 클래스에서 INotifyPropertyChanged를 구현한다고 가정합니다.

1

expression samples을 살펴보십시오. datacontext에서 이벤트에 대한 트리거가 있습니다. DataEventTrigger

ControlStoryboardAction을 트리거하여 뷰 모델이 특정 이벤트를 발생시킬 때마다 스토리 보드를 시작할 수 있습니다.

그러면 viewmodel이 이벤트를 명령의 일부로뿐만 아니라 다른 시간에 발생시킬 수 있습니다.

관련 문제