2010-02-05 86 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) 
    } 
}