2010-02-05 34 views
0

我正在使用Silverlight 3和RIA服務。我有一個簡單的RIA DomainDataSource,名爲「source」,並綁定了幾個ListBox。源查詢的方法返回一個簡單的對象圖:一個Parents集合,其中每個父對象都有一個Children集合。Silverlight:綁定到嵌套列表中的所有項目

我的用戶界面有兩個列表框。 ParentListBox將ItemsSource綁定到{綁定數據,ElementName = source}「,並顯示一個DisplayMemberPath的名稱,這顯示了所有父母的名字,這就是我想要的。 sourceList},結果ChildrenListBox顯示父列表框中當前選擇的父項的所有子項:當我更改選擇項時,ChildrenListBox中的值發生更改,這是非常聰明的行爲,我想,但不是我想要的。我想要的是這第二個ListBox顯示全部的子女全部是的父母,無論在ParentListBox中選擇了什麼,我該如何實現?

回答

0

用您選擇的IEnumerable在您的視圖模型上創建一個ChildrenList屬性。 將ChildrenListBox ItemsSource屬性綁定到ChildrenList。 在您的Web回調中,使用從RIA服務返回的父項填充ChildrenList屬性的基礎集合。

foreach(var parent in ParentList) 
{ 
    foreach(var child in parent.Children) 
    { 
     _childrenList.Add(child) 
    } 
}