在我的WPF应用程序中,我有一个Observablecollection“CollOfPersons”of Persons,其中每个Person对象都有一个类型为
的属性“NotesOnPerson”List<Notes>
(以及其他属性)。现在我通过
将“CollOfPersons”绑定到代码中的列表框lblb.ItemsSource = CollOfPersons;
现在我已经设置了一个模板如何显示一个人,即我将每个人包装在'Expander'中并在Expander.header中显示基本属性(例如,Name,Age),这很好,例如,
<Expander.Header>
<StackPanel Orientation="Horizontal">
...
<TextBlock Text="{Binding Path=Name}"/>
...
</StackPanel>
</Expander.Header>
但是,现在我想将NotesOnPerson注释列表绑定到Expander.Content。但由于这又是一个不同大小的列表,我不知道该怎么做。与上述相同的策略不起作用,因为我不知道扩展器的名称(因为我知道所有东西都是大列表框的名称'lb')。像
这样的东西<Expander.Content>
<ListBox ItemTemplate="{StaticResource NoteTemplate}"
ItemsSource="{Binding Path=NotesOnPerson}"/>
</Expander.Content>
似乎不起作用。我似乎对代码和XAML绑定感到困惑。我该怎么解决这个问题?
答案 0 :(得分:1)
这是你要找的吗?
<Expander.Content>
<ListBox ItemTemplate="{StaticResource NoteTemplate}"
ItemsSource="{Binding NotesOnPerson}"/>
</Expander.Content>
我不熟悉Expander
,但由于NotesOnPerson
(可能)属于Person
而非Name
的属性,因此您应使用的语法。 (Path=
是可选的,因为只是将它放入其中是另一种声明Path
的方式)