Связывание Wpf с вложенными свойствами - PullRequest
1 голос
/ 13 мая 2010

ViewModel

У меня есть свойство типа Member с именем KeyMember . Тип 'Member' имеет ObservableCollection , называемый Адреса . Адрес состоит из двух строк - улица и почтовый индекс .

View

У меня есть ListBox, источник элемента которого должен быть установлен в KeyMember свойства ViewModels, и он должен отображать Street всех прошлых адресов в коллекции адресов.

Вопрос

Мои отношения ViewModel и View установлены правильно.

Я могу написать шаблон данных для приведенного выше простого случая, как показано ниже

<ListBox ItemsSource="{Binding KeyMember.Addresses}">
    <ListBox.ItemTemplate>
        <DataTemplate DataType="Address">
            <TextBlock Text="{Binding Street}"/>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

Мне интересно знать, как написать шаблон данных, если я изменю KeyMember с типа Member на ObservableCollection , предполагая, что в коллекции только один элемент. Я не уверен, является ли это действительным сценарием и его осуществимость.

PS: я знаю, что для нескольких элементов в коллекции мне придется реализовать шаблон / сценарий Master-Detail . Я смотрю на это в данный момент.

1 Ответ

2 голосов
/ 14 мая 2010

Если вы хотите связать с 0-м элементом, вы можете сделать {Binding Path=[0].Addresses}, а также для любых других элементов в коллекции, которые поддерживают индексацию в стиле массива. Я согласен с Вонко, хотя это довольно необычное требование.

...