我可以在WPF上使用MVVM模板来解决这个问题吗?

时间:2014-03-11 16:19:16

标签: c# .net wpf xaml mvvm

我一直在阅读WPF上的MVVM。只要我理解正确,在MVVM中我应该将Model(数据显示)从显示它的方式(View)中分割出来,使用ModelView链接两者,对吗?

所以我想做的是使用DataSet作为模型,其中n个字段来自数据库。字段名称,类型和顺序是可变的(是从SQL Server视图中选择)。

该视图将是一个带有Datagrid的WPF表单。

所以我应该以一种方式构建我的模型视图,该方法迭代DataSet中的每个字段,并根据字段类型格式化数据,以便稍后在网格上显示它。

可以在WPF上使用MVVM Templante吗?

提前致谢

更新

我将根据LordTakkera的评论,尝试澄清我的情景以及我尝试做的事情。 我正在使用.NET技术构建一个Client-Server Layered应用程序。客户端和服务器将位于不同的计算机上,与WCF通信。 一些不同的客户端将使用此软件,因此假设这种情况: 客户1,2和3需要在网格上显示销售报告。

客户1需要:销售日期,客户名称和销售进口。

客户2需要:销售日期,供应商名称和销售导入。

客户端3希望在其客户表中添加一个数字字段,表示每个客户的预期销售额以及在销售报告中显示的数据。

如果我使用强数据类型,我需要为每个客户端提供一个二进制文件,我是不是很好? 我想要的是为客户端1,2和3使用相同的二进制文件,根据数据库数据更改销售报告的输出。

为什么呢?原因很多:

1)消除错误:如果我在某个类中发现了一个错误,我可以更正它,重新编译并将更正的二进制文件提供给我的所有客户。

2)可扩展性:如果我向客户端1询问的系统添加了一些功能,我可以将该功能提供给我的所有客户。

3)灵活性:我可以使用相同的二进制文件更改每个客户端的软件行为。

我理解强类型的优点,实际上我会在某些情况下使用。但在其他方面,灵活性对我来说至关重要。 那么,这是我的选择吗?

谢谢!

更新2

在@LordTakkera的帮助下,本页面的很多人都开始开发我的应用程序。 Rigth现在我有我的模型,我的wcf服务我的客户端和我的第一个ViewVodel和View。现在,我试图为应用添加更多复杂性,为我的项目添加多个XAML视图。如果我遵循MVVM模式,这些页面与插入所有其他视图的主页面之间的导航也应该使用viewModel进行管理(Something call application viewModel for read read)。我的想法是让容器MainPage具有一个可以显示子视图的区域。我也想在分离的XAML文件中使用子视图,因为有些视图非常复杂,我会丢失视图!问题是无法在MVVM模式上找到一个带有主容器页面的WPF导航的示例代码。我能找到的所有示例代码:

1)使用像Prism或MVVM ligth这样的外部工具包,现在我不想把新东西搞得一团糟!

2)每个视图的所有控件都是在一个XAML上创建的。

我需要一些代码帮助来创建我的应用程序的基本布局,并想知道我的计划是否是可行的。谢谢!

1 个答案:

答案 0 :(得分:2)