【问题标题】:Animations and MVVM in SilverlightSilverlight 中的动画和 MVVM
【发布时间】:2010-04-16 00:52:11
【问题描述】:

好的,我已经查看并搜索了所有我想要做的就是将故事板动画从我的视图模型触发到我的视图上。问题是有太多样板代码来获得像 myStoryboard.Begin(); 这样简单的东西。射击。那么你使用的方法是什么?目前,我正在使用 Silverlight 3,MVVM Light。

编辑:我不能使用 Visual State Manager 之类的东西,因为我的动画涉及关键帧,我不想再次将它们重做为状态。

【问题讨论】:

    标签: silverlight mvvm


    【解决方案1】:

    我通常作弊并允许 ViewModel 通过接口访问 View。然后,我可以为从 VM 到 View 的一些绑定添加代码隐藏,这些绑定在纯 XAML 中很尴尬。

    您还可以在视图上创建 DependencyProperty,将其绑定到 VM 上的布尔属性,然后创建触发器以在属性变为 True 时触发动画。这仍然需要代码隐藏中的一些样板来定义 DP,但至少现在绑定引擎仍在执行通信。

    【讨论】:

    • 我同意 Dan 的第二个解决方案(视图上的 DependencyProperty)。我个人不希望允许 VM 访问视图...
    • 我喜欢使用“IParticularView”模式来解决通过绑定的纯属性驱动语法很尴尬的情况。这通常意味着虚拟机想要告诉视图“做某事”,例如启动动画、弹出警告框等。无论如何,视图/虚拟机都是强耦合的,通过接口抽象它仍然允许存根查看测试。
    猜你喜欢
    • 1970-01-01
    • 2011-03-31
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    • 2010-10-08
    • 1970-01-01
    相关资源
    最近更新 更多