wpf - 如何使用MVVM实现这样的应用程序

标签 wpf mvvm

我想使用Datagrid(或列表)和MVVM模式实现某种地址簿/通讯录。

类似于Outlook/Thunderbird,其中显示的联系人列表带有2-3个主要字段(例如姓名),当您双击联系人时,您将获得一个新的模态框,其中显示所有此特定联系人的详细信息。

实际上,我的情况与管理客户,订单和产品的应用程序非常相似。作为主 View ,用户将通过3个选项卡显示3个数据网格,一个显示客户列表,一个显示订单,一个显示产品。
然后,在每个 View 中,可以添加(通过打开额外的对话框),删除(在特定条件下)对象。
每个对象与另一个对象都有关系。
例如,在一个Customer实例中,我有一个针对该客户的订单列表,对于每个Order,我都有一个订购的产品列表。

几个星期/几个月以来,我在网络上阅读了很多有关MVVM模式的内容,但是不知何故,我感到困惑。到目前为止,我可以找到任何这样的样本。 (也许我搜索错了吗?)

我想使用MVVM模式实现类似的功能。
我如何组织这样的应用程序?
有人可以帮忙,如何组织?
某处有 sample 吗?

事先感谢您的帮助。

弗雷德

最佳答案

1)This video帮助我了解了MVVM的基础知识。

2)在SO上搜索“MVVM Master Detail”。

3)“删除(在某些条件下)对象”:阅读有关命令和中继命令的信息:

private RelayCommand _delete;
public ICommand Delete
{
    get
    {
        return _delete ?? (_delete = new RelayCommand(action => DoDelete(), condition => CanDelete));
    }
}

private bool CanDelete
{
    get { return true; // your condition }
}

4)“然后,在每个 View 中,您可以添加(通过打开额外的对话框)”
“每个对象与另一个对象都有关系”-您需要让其他ViewModel知道更改。典型的解决方案是使用Mediator模式。请引用以下文章:

http://sachabarber.net/?p=477

http://marlongrech.wordpress.com/2008/03/20/more-than-just-mvc-for-wpf/

http://blog.galasoft.ch/archive/2009/09/27/mvvm-light-toolkit-messenger-v2-beta.aspx

编辑:刚刚找到了另一个不错的,简单的MVVM示例,具有排序过滤和列表导航功能:

http://marlongrech.wordpress.com/2008/11/22/icollectionview-explained/

关于wpf - 如何使用MVVM实现这样的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4677871/

相关文章:

c# 如何获取资源文件夹中所有项目的文件路径

wpf - WPF/Silverlight 的 TDD 类型方法

wpf - Entity Framework CTP5 代码优先,WPF - MVVM 建模

c# - 在 MVVM 中给出一些命令来查看

c# - mvvm在对象中将listview项目选择为list <string>

mvvm - viewModel vs model 谁负责与业务层通信?

c# - 当我使用 Caliburn Micro 时如何将 wpf 网格上的按钮绑定(bind)到 MVVM 上的方法

xaml - UWP MVVM XAML 动态用户控制管理器

C# WPF MVVM ItemSource 未附加列表

wpf - 更改 MainWindow.xaml 后 ListBox 出现 DataContext 问题