【发布时间】:2012-07-24 06:06:17
【问题描述】:
我的 WPF 应用程序的主窗口有一个标题栏/导航区域,该区域在应用程序的整个生命周期内都存在,然后是大多数用户交互发生的工作区区域。 (它都是按照 MVVM 模式的精神编写的,我可能对代码隐藏有过分的反感:/)这个工作区只是一个 ContentPresenter,它的内容绑定到 MainWindowViewModel 的属性输入ISomeArbitraryVMInterface。在我的代码中,通过从任何地方提出 DomainEvent 来更新此属性。
说了这么多,当DomainEvent 被触发并且ContentPresenter 的内容被改变时,我希望ContentPresenter 通过动画改变它的不透明度——从用户的角度来看,我希望它看起来好像当前视图淡出,ContentPresenter 更新为新的ISomeArbitraryVMInterface,然后对应于新的ISomeArbitraryVMInterface 的新视图淡入。
我的第一个想法是每当 Content 属性发生变化时让 ViewModel 触发一个事件,然后我意识到我已经完成了我的 DomainEvent 实现,但后来我想不出一种方法来制作 View “监听”事件,然后同步淡出/更新/淡入。任何解决此类问题的见解将不胜感激。如果有一个优雅的解决方案,我会发布一些 code-sn-ps 以供后代使用。
【问题讨论】:
标签: wpf mvvm contentpresenter