簡體   English   中英

WPF DataContext for Child / Detail UserControl / View

[英]WPF DataContext for Child/Detail UserControl/View

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

這不完全是一個Master / Detail場景,這可能是我遇到問題的原因,但是總的來說,我試圖找出如何關聯兩組數據,這些數據不是完全Master / detail。

為了簡單起見,假設我有兩個view / viewmodels

1) Person
ID, FirstName, LastName

2) Contact
ID, PhoneNumber

現在,我知道您通常會想到一個人有多個聯系人,這將是這樣的:

    Contact :  
ID, PersonID, PhoneNumber

但在這個例子中,讓我們繼續我要走的路...

我有另一個表,聯接表,有

PersonID
ContactID

現在,如果Bob和Mary的電話號碼相同,則聯接表中有2個條目

1 1
2 1

(假設Bob是1,Mary是2,而555-555-5555是聯系人的ID 1)

因此,我為Person建立了視圖和視圖模型,沒問題,我為聯系人建立了視圖和視圖模型,同樣沒有問題

現在,如果我構建了一個以“人”作為主視圖和“聯系人”作為細節的視圖,如何限制僅顯示所選人的那些聯系人? 同樣,如果我有另一種“聯系人編號”視圖,並且想查看與該所選號碼相關聯的人員列表,那么該如何執行。

這可能很容易,但是我似乎無法弄清楚。

或者,我是否需要在Person視圖模型中實際創建一個ObservableCollection以及在Contact視圖模型中同時創建ObservableCollection?

任何幫助,將不勝感激。

多對多關系(一種數據庫概念)很難用C#表示。

一種實現方法是:

  1. 讓您的Person對象公開屬於該人的Contact對象的集合。
  2. 讓您的聯系人對象公開共享該組聯系人信息的Person對象的集合。

這使您的“個人”視圖和“聯系人”視圖可以像標准主從視圖一樣操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM