【问题标题】:WPF DataContext for Child/Detail UserControl/View子/详细信息用户控件/视图的 WPF DataContext
【发布时间】:2009-08-27 05:16:37
【问题描述】:

我是 C# 和 WPF 的新手,所以请多多包涵。

这不完全是主/明细方案,这可能是我遇到问题的原因,但一般来说,我试图弄清楚如何关联两组不完全主/明细的数据。

为了简单起见,假设我有两个视图/视图模型用于

1) Person
ID, FirstName, LastName

2) Contact
ID, PhoneNumber

现在,我知道您通常会想到一个 Person 有多个联系人,它会是这样的:

    Contact :  
ID, PersonID, PhoneNumber

但是对于这个例子,让我们继续我的方式......

我有另一个表,一个连接表,它有

PersonID
ContactID

现在,如果 Bob 和 Mary 的电话号码相同,则连接表中有 2 个条目

1 1
2 1

(假设 Bob 是 1,Mary 是 2,并且 555-555-5555 是联系人的 ID 1)

所以,我为 Person 构建视图和视图模型,没问题 我为联系人构建视图和视图模型,再次没有问题

现在,如果我构建一个使用 Person 作为 master 并使用 Contact 作为详细信息的视图,如何限制仅显示所选人员的这些联系人?同样,如果我对 Contact #s 有另一种看法,并且我想查看与该选定号码相关联的人员列表,也应该如何执行此操作。

这可能很容易,但我似乎无法弄清楚。

或者,我是否需要在 Person 视图模型中创建 ObservableCollection 并在 Contact 视图模型中创建 ObservableCollection?

任何帮助将不胜感激。

【问题讨论】:

    标签: c# wpf datacontext


    【解决方案1】:

    多对多关系,一个数据库概念,在 C# 中很难表达。

    实现这一点的一种方法是:

    1. 让您的 Person 对象公开属于该人的 Contact 对象的集合。
    2. 让您的联系人对象公开共享该组联系人信息的人员对象集合。

    这允许您的“个人”视图和“联系人”视图像标准的主从视图一样操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-06
      • 1970-01-01
      相关资源
      最近更新 更多