Silverlight: привязка ко всем элементам во вложенных списках - PullRequest
0 голосов
/ 06 февраля 2010

Я использую Silverlight 3 со службами RIA. У меня есть простой RIA DomainDataSource с именем «source», с которым связаны несколько ListBoxes. Метод, который запрашивает источник, возвращает простой граф объектов: коллекцию Parents, где у каждого родителя есть коллекция Children.

Мой пользовательский интерфейс имеет два списка. ParentListBox связывает ItemsSource с {Binding Data, ElementName = source} "с помощью DisplayMemberPath of Name. Здесь отображаются имена всех родителей, что я и хочу.

ChildrenListBox связывает ItemsSource с {Binding Data.Children, ElementName = source}. В результате ChildrenListBox показывает всех потомков родителя, выбранного в данный момент в ParentListBox : когда я меняю выбор, значения в ChildrenListBox меняются. Это довольно умное поведение, я думаю, но не то, что я хочу. Я хочу, чтобы этот второй ListBox постоянно отображал все потомков всех родителей, независимо от того, что выбрано в ParentListBox. Как мне этого добиться?

1 Ответ

0 голосов
/ 06 февраля 2010

Создайте свойство ChildrenList в вашей модели представления с IEnumerable на ваш выбор. Свяжите свойство ChildrenSistBox ItemsSource с ChildrenList. В вашем веб-обратном вызове заполните базовую коллекцию для свойства ChildrenList родителями, которые были возвращены из службы RIA.

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