【发布时间】:2016-06-13 15:05:26
【问题描述】:
我开始学习 C#,目前正在学习一些 Prism。 我对整个项目结构和界面有一些困难。你们能帮帮我吗?
我了解到所有 ViewModel implement 都继承了 BindableBase 接口。但是模型呢?
IE:我有一个员工模型。它具有我的类属性以及我的 Sets 和 Gets 以及 OnPropertyChanged 实现。对吗?
Model 实现 INotifyPropertyChanged 和 ViewModel implements 继承 BindableBase?
【问题讨论】:
-
我认为重要的是要指出
BindableBase是一个可以继承的基类,与实现接口不同。很抱歉我无法回答您的实际问题,因为我只熟悉 MVVMLight。 -
你的模型应该只包含你的类和与之相关的所有函数。您的 ViewModel 应包含所有逻辑。然后您的视图将包括所有事件处理程序和 GUI
-
并非所有您的 ViewModel 都必须扩展
BindableBaseclass(它不是接口)。BindableBase有一种简洁的方式来实现INotifyPropertyChanged,使用与否取决于你。如果你不使用它,什么都不会发生。只需实现INotifyPropertyChanged即可。如果您决定使用它,那么在您的模型上使用它也没有问题,但是您必须在这样做时包括棱镜组件,这可能是可取的,也可能不是可取的。BindableBase的源代码:github.com/PrismLibrary/Prism/blob/master/Source/Prism/Mvvm/… -
谢谢大家的回复!我主要将
BindableBase用于INotifyPropertyChanged中的SetProperty方法。所以......我是否在我的模型上实现它?如果我这样做了,我的 ViewModel 就会从无到有,对吧?感谢 Filburt 编辑我的原始帖子。