如何区分UI绑定模型对象和传递给中间层的模型对象

时间:2016-03-04 18:55:19

标签: c# wpf silverlight

==> a)UI模型对象:即我有属性更改通知的类(INotifyPropertyChanged),SelectedItemXXX绑定到某些ComboBox SelectedItem

==> b)模型对象:简单的目标.POCO(普通的旧CLR对象)

问题1)总的来说,拥有这样的模型会更好。我的意思是我们只需要维护模型(a)吗?

问题2)如果我们保持两个模型。什么是更好的方式。我们可以有一些关联或某种方法来生成模型对象(b)。

问题3)如果我们有两个模型,那么通常会遵循名称惯例。             我把它命名为PersonUI,Person我的意思是更好的命名方式吗?

三江源

1 个答案:

答案 0 :(得分:2)

回答问题1:。您经常需要简单的模型对象来执行UI模型领域之外的真实世界业务逻辑(即域逻辑)。在Single Responsibility Principal之后,您不应该使用业务模型对象来卷积UI模型对象。

对问题2的回答: - 一种非常常见的使用模式是MVVM

  • M - 代表模型(业务或域逻辑层)
  • V - 表示视图(在WPF和Silverlight中,它是XAML和代码隐藏)
  • VM代表ViewModel(或者用你的话说是UI模型对象)

MVVM是WPF和SilverLight的推荐最佳实践。它将UI与模型分开,便于测试和重用。

对问题3的回答:UI模型对象(a)的常见命名约定是使用 XXXXViewModel 。例如,如果您有一个名为Giraffe.xaml的WPF控件和Giraffe.xaml.cs后面的相应代码,那么您的视图模型文件的名称将为GiraffeViewModel.cs,类将类似于:

public class GiraffeViewModel : INotifyPropertyChanged {..

将模型对象的名称保存到其中包含的逻辑中。例如:GiraffeVision.cs