Wpf与嵌套属性的绑定

时间:2010-05-13 13:34:10

标签: wpf data-binding mvvm listbox

视图模型

我有一个名为会员的属性,名为 KeyMember '会员'类型有一个名为地址 ObservableCollection 地址由两个字符串组成 - 街道邮政编码

查看

我有一个ListBox,其项目来源需要设置为ViewModels的 KeyMember 属性,它应该显示Address集合中所有过去地址的 Street

问题

我的ViewModel和View关系已正确建立。

我可以为上面的简单案例编写一个数据模板,如下所示

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

如果我将 KeyMember 会员更改为 ObservableCollection&lt; ,我很高兴知道如何编写DataTemplate会员&gt; ,假设该集合只有一个元素。我不确定这是否是一个有效的场景,它的实施可行性。

PS:我知道对于集合中的多个元素,我将不得不实现 Master-Detail模式/场景。我现在正在研究这个问题。

1 个答案:

答案 0 :(得分:2)

如果要绑定到第0个元素,则可以执行{Binding Path=[0].Addresses},对于支持数组样式索引的集合中的任何其他元素也是如此。我同意Wonko,虽然这是一个相当不寻常的要求。