C# 我可以在WPF上使用MVVM模板来解决这个问题吗?
我一直在阅读WPF上的MVVM。只要我理解正确,在MVVM中,我应该使用ModelView将模型(要显示的数据)与显示它的方式(视图)分开,以链接两者,对吗 所以我想做的是使用C# 我可以在WPF上使用MVVM模板来解决这个问题吗?,c#,.net,wpf,xaml,mvvm,C#,.net,Wpf,Xaml,Mvvm,我一直在阅读WPF上的MVVM。只要我理解正确,在MVVM中,我应该使用ModelView将模型(要显示的数据)与显示它的方式(视图)分开,以链接两者,对吗 所以我想做的是使用数据集作为模型,其中n个字段来自数据库。字段名称、类型和顺序是可变的(是从SQL Server视图中选择的) 该视图将是一个带有Datagrid的WPF表单 因此,我应该以迭代数据集中每个字段的方式构建modelview,并根据字段类型格式化数据,以便稍后在网格上显示 是否可以在WPF上使用MVVM模板执行此操作 提前谢谢
数据集
作为模型,其中n个字段来自数据库。字段名称、类型和顺序是可变的(是从SQL Server视图中选择的)
该视图将是一个带有Datagrid的WPF表单
因此,我应该以迭代数据集中每个字段的方式构建modelview,并根据字段类型格式化数据,以便稍后在网格上显示
是否可以在WPF上使用MVVM模板执行此操作
提前谢谢
更新
根据洛德塔克拉的评论,我将试图澄清我的情况和我试图做的事情。
我正在使用.NET技术构建一个客户机-服务器分层应用程序。客户端和服务器将位于不同的机器中,与WCF通信。
一些不同的客户端将使用此软件,因此假设此场景:
客户1、2和3需要在网格上显示销售报告
客户1需要:销售日期、客户名称和销售导入
客户2需要:销售日期、供应商名称和销售导入
客户3希望在其客户表中添加一个数字字段,该字段表示每个客户的特定销售额以及在销售报告中显示的内容
如果我使用强数据类型,我需要为每个客户机使用一个二进制文件,对吗?
我想要的是对客户端1、2和3使用相同的二进制文件,根据数据库数据更改销售报告的输出
为什么??原因很多:
1) 消除bug:如果我在某个类中发现bug,我可以更正它,重新编译并将更正后的二进制文件提供给我的所有客户机
2) 可伸缩性:如果我向客户端1要求的系统添加一些功能,我可以将该功能提供给所有客户端
3) 灵活性:我可以使用相同的二进制文件更改每个客户端的软件行为
我理解强类型的优点,事实上我会在某些情况下使用它。但在其他方面,灵活性对我来说是至关重要的。
那么,我的选择是什么
谢谢
更新2
在@LordTakkera和本页许多人的帮助下,我成功地开始了应用程序的开发。现在我有了我的模型,我的wcf服务,我的客户和我的第一个视图Vodel和视图。现在,我正试图为我的项目添加多个XAML视图,从而为应用程序增加更多的复杂性。如果我坚持遵循MVVM模式,那么该页面和插入所有其他视图的主页之间的导航也应该使用viewModel(我所读的东西称之为application viewModel)进行管理。我的想法是有一个容器主页,其中有一个区域将显示子视图。我还希望在分离的XAML文件中包含子视图,因为有些视图非常复杂,我会丢失视图!问题是,在具有主容器页面的MVVM模式上找不到WPF导航的单个示例代码。我能找到的所有示例代码:
1) 使用诸如Prism或MVVM ligth之类的外部工具包,现在我不想用新东西搞得乱七八糟
2) 每个视图的所有控件都是在单个XAML上创建的
我需要一些代码来帮助我创建应用程序的基本布局,我想知道我的计划是否可行。谢谢 正如HighCore所指出的,DataSet并不是一个很好的模型选择,但如果不是这样的话,这听起来是对的,不过我在你的帖子中会有一些顾虑
<DataGrid ItemsSource={Binding DataItems}>
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
...
</DataGrid.Columns>
</DataGrid>
...
<ContentPresenter Content="{Binding CurrentView}"/>