【发布时间】:2012-11-14 21:38:50
【问题描述】:
这是关于 MVVM 模式最佳实践的具体问题。我正在使用 MvvmLight 库。 它是这样的: 我的模型,比如“Flight”,实现了一些可以通过方法启动、暂停和停止航班的业务逻辑。无论是播放停止还是暂停飞行,每种方法都会执行其逻辑以实现功能。更改的一个重要变量是状态枚举,它指示飞行状态 - 播放、停止或暂停。如前所述,状态变量(和属性)在模型中定义。 另一方面,飞行类由一个 ViewModel 类包装,该类包含一个包含飞行模型中状态变量的 Status 属性,以及连接到飞行模型播放停止暂停方法的 RelayCommands。
问题从这里开始: 当我通过视图执行其中一个命令时,它执行模型中的方法,使状态变量本身直接改变,但它只在模型中改变.. ViewModel 中的状态属性不知道是否包装变量已更改,因为它是直接更改的...这意味着如果某些视图元素绑定到状态属性,它不会在命令执行时更改..
我知道解决这个问题的几种方法,但我要求一个不会破坏 MVVM 模式的公平解决方案(例如在 Model 的飞行类中使用 INotifyPropertyChanged )
【问题讨论】:
标签: wpf mvvm mvvm-light