适当的方式在MVVM中驱动视觉状态

时间:2010-06-17 16:58:48

标签: wpf mvvm mvvm-light visualstatemanager

给定一个可以显示4个不同应用程序页面之一的内容呈现器,并且我想基于视图模型状态淡化/以其他方式设置页面之间的转换动画。理想情况下,我希望在DataTemplate中定义所有这些,然后根据视图模型中的枚举触发转换,这样当某些表示状态的枚举发生更改时,转换会触发到相应的页面。

有没有已知的最佳做法来处理这样的事情?马上就会想到在数据触发器上使用Enter和Exit操作来播放故事板的可能性,但这肯定不会使用部件和状态模型,所以我想回避这一点。我也尝试过使用codeplex Expression项目中的DataStateSwitchBehavior,但发现它与WPF 4.0 / Blend 4 RC的SDK的最新版本无法兼容。有没有人对如何优雅地处理这个有任何想法?我正在使用MVVM-Light框架。另外我想指出的是,只要它存在于资源字典中的DataTemplate上,代码隐藏就不是没有重构的选项。

1 个答案:

答案 0 :(得分:1)

啊,我记得在这个问题上抓了几个小时!不再刮擦......已经回答here。祝你好运。