我正在尝试使用简单的WPF应用程序来使用Model-View-ViewModel模式.在我的页面上,我有几个动画:
...
目前我在后面的代码中开始动画,并且可以在完成时使用以下代码监听Completed事件:
storyboardRight = (Storyboard)TryFindResource("storyboardRight"); storyboardRight.Completed += new EventHandler(storyboardRight_Completed); storyboardRight.Begin(this);
有没有一种方法可以将故事板绑定到我的ViewModel,以便它可以在ViewModel引发的事件上启动,并在完成时可以回调到该ViewModel?
我有机会把这个问题提交给微软的Josh Twist,他花了很多时间来解决这个问题.解决方案是DataTrigger
在ViewModel中结合使用枚举来启动Storyboard,这又需要将页面放入ContentPresenter
.为了处理动画完成,需要少量代码来调用ICommand
ViewModel.
阅读Josh的帖子,了解该解决方案的完整描述.