2010-02-05 11 views
0

RIA 서비스에서 Silverlight 3을 사용하고 있습니다. 나는 그것에 바인딩 된 몇 가지 ListBoxes "소스"라는 간단한 RIA DomainDataSource 있어요. 소스 쿼리가 객체의 간단한 그래프를 반환하는 메소드 : 각 부모가 Children 컬렉션을 가진 부모 컬렉션.Silverlight : 중첩 목록의 모든 항목에 바인딩

내 UI에는 두 개의 목록 상자가 있습니다. 부모의 이름이 DisplayMemberPath 인 {Binding Data, ElementName = source} "에 ItemsSource를 바인딩합니다. 결과적으로 ChildrenListBox는 ParentListBox에서 현재 선택된 부모의 자식 을 모두 표시합니다. 선택을 변경하면 ChildrenListBox의 값이 변경됩니다.이 방법은 상당히 똑똑한 동작이지만 원하는 것은 아닙니다. 내가 원하는 것은이 두 번째 ListBox를 표시하는 것입니다. 의 모든 자식 모두 부모 목록 상자에서 선택된 것과 관계없이 항상 부모의입니다.

답변

0

원하는 IEnumerable을 사용하여 뷰 모델에 ChildrenList 속성을 만듭니다. ChildrenListBox ItemsSource 속성을 ChildrenList에 바인딩하십시오. 웹 콜백에서 ChildrenList 속성의 기본 컬렉션을 RIA 서비스에서 반환 된 부모로 채 웁니다.

foreach(var parent in ParentList) 
{ 
    foreach(var child in parent.Children) 
    { 
     _childrenList.Add(child) 
    } 
} 
관련 문제