2010-06-18 17 views
0

我已經創建了包含2個表的數據集: 用戶(用戶ID,用戶名,其它用戶詳情) 電子郵件(ID,用戶ID,USEREMAIL)實施主從與一個數據集(WPF)2個表

我使用2 DataAdapters(每個表一個)填充數據集

我有一個列表框,幾個文本框和一個網格。 listbox獲取所有用戶,少數文本框顯示在列表框中選擇時的用戶詳細信息(這很容易b/c它們都綁定到同一個表)。

網格應顯示所選用戶的電子郵件地址。

我該如何使用綁定來做到這一點?是否有可能或應該捕捉選擇更改事件並「手動」過濾網格(當前網格顯示錶中的所有電子郵件)。

回答

0

如果你有一個包含所有郵件的集合,那麼你可以嘗試尋找讓你的網格,實現了ICollectionView接口的對象的ItemsSource - 這可以讓你篩選,排序和分組您的收藏...

你可以通過調用

var view = CollectionViewSource.GetDefaultView(myList); 
0

你可以有一個叫SelectedUser屬性,並將其綁定到ListBox的的SelectedItem得到實現此接口的對象。在屬性的設置器中,您可以過濾綁定到網格的電子郵件列表。

但是從長遠來看,您可以使用一些ORM工具或VS中的可用Linq-to-sql創建模型,以創建模型及其關係。因此,當你有這樣的事情

Class User 
{ 
    UserId, UserName, List<Email> that user has 
} 

您可以創建一個List<User>SelectedUser屬性,該屬性將被綁定到UI元素。

該網格將被綁定到SelectedUser.Emails因此,一切都被綁定,流程將正常工作。