1

在这里,我的意思是说我的应用程序有一组 5/6 页的问题。我要使用的属性类型对于我的所有应用程序都是相同的。唯一会改变的是问题出现的顺序,如 -1/2/3/..

我创建了一些基本类型,以便相同类型的应用程序将使用这些基本类型,其中大多数通用验证将使用数据属性定义。

如图所示:在此处输入图像描述

现在,我必须为每个单独的视图创建视图模型。视图模型将能够以属性的形式使用这些基本类型,并且一些特定于应用程序的验证将在同一视图模型中定义。

我已经为我的所有应用程序考虑过这种结构,因为我会一次又一次地重复相同的东西。我知道每个视图都应该有自己的视图模型。因此,我将引用基本类型程序集并为应用程序创建单独的视图模型,仅采用特定视图所需的类型。

当我想为我的所有应用程序打下基础时,这是一个前进的好方法吗?

4

1 回答 1

0

简短回答:是的,对我来说看起来不错

长答案:

拥有一个可重用的基本抽象 ViewModel 是个好主意。我会说你可能实际上想要超过 1 个。

一种称为 ViewModelBase 或 BaseViewModel,其中包含特定于 ViewModel 的所有内容,例如 INotifyPropertyChange 的实现。此案例类通常还实现 IViewModel 接口以指示它是 ViewModel。然后为您的每个业务逻辑域(在您的情况下是您的一组问题/答案)创建一个基类,您可以在其中设置通用业务逻辑

对于验证,假设您正在实现 IDataErrorInfo,您可以在最通用的类​​中使用它来实现它,即具有要验证的属性的类。通常有些会发生在基类中,有些会发生在派生类中

对于每个视图,您可以选择要使用的特定 ViewModel。由于继承,有时这会很轻。您还可以考虑重用划分用户控件中的部分的视图(并补充样式)。

于 2013-06-25T11:18:02.660 回答