相关疑难解决方法(0)

WPF:如何在代码隐藏中没有代码的情况下将ViewModel中的事件发送到View?

我很简单(我希望:))问题:

在MVVM中,View通常会侦听ViewModel属性的更改.但是,我有时会喜欢听事件,例如,当VM发出信号时,View可以启动动画或关闭窗口.

通过带有NotifyPropertyChanged的bool属性(并且只有当它从false变为true时才开始动画)可以做到这一点,但感觉就像是一个hack,我更喜欢暴露事件,因为它在语义上是正确的.

此外,我想在代码隐藏中没有代码的情况下这样做,因为这样做viewModel.myEvent += handler意味着我已经手动取消注册事件以允许View为GC'd - WPF视图已经能够弱地监听属性',而且我更喜欢在View中以声明方式编程.

标准的强事件订阅也很糟糕,因为我需要为一个View切换多个ViewModel(因为每次创建View需要占用太多的CPU时间).

感谢您的想法(如果有标准的解决方案,msdn的链接就足够了)!

wpf events view mvvm viewmodel

40
推荐指数
1
解决办法
3万
查看次数

标签 统计

events ×1

mvvm ×1

view ×1

viewmodel ×1

wpf ×1