MVVM-Silverlight中视图模型中的触发器情节提要

MVVM-Silverlight中视图模型中的触发器情节提要,silverlight,mvvm,view,viewmodel,Silverlight,Mvvm,View,Viewmodel,我的视图中有几个故事板,如果可能的话,我想从ViewModel触发它们。有没有一个简单的方法或优雅的方式来做到这一点。这就是我要做的 如果用户单击按钮-->Relay命令(在ViewModel中),则Relay命令将播放情节提要。还有一件事,我想在ViewModel中自己触发故事板动画,而不需要任何交互 <i:Interaction.Triggers> <i:EventTrigger EventName="MouseLeftButtonDown"> &l

我的视图中有几个故事板,如果可能的话,我想从ViewModel触发它们。有没有一个简单的方法或优雅的方式来做到这一点。这就是我要做的

如果用户单击按钮-->Relay命令(在ViewModel中),则Relay命令将播放情节提要。还有一件事,我想在ViewModel中自己触发故事板动画,而不需要任何交互

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

如果单击按钮纯粹是为与视图相关的事情提供电源,而不是执行任何实际的应用程序逻辑,那么我认为您可以在view类的代码中完成所有这些

如果不是这种情况,那么我将使用演示文稿(ViewModel)上的属性来表示演示文稿处于状态,并让视图对PropertyChanged事件作出反应并启动情节提要。这是假设您正在演示类上实现InotifyProperty更改。

请查看。存在来自datacontext的事件的触发器<代码>数据事件触发器

每当viewmodel引发特定事件时,您可以使用它触发
控制故事板动作
,以启动故事板


然后,您的viewmodel可以作为命令的一部分以及在其他时间引发事件。

我知道这是很久以前的事了。但我已经写了一篇关于触发故事板和MVVM的详细博客文章


以下是如何在不接触xaml行或代码的情况下在blend中执行此操作:

在我将ControlStoryboardProperty=“Play”添加到ControlStoryboardAction后,它为我工作。