在绑定的ObservableCollection中绑定List

时间:2012-09-06 15:25:20

标签: c# wpf binding

在我的WPF应用程序中,我有一个Observablecollection“CollOfPersons”of Persons,其中每个Person对象都有一个类型为

的属性“NotesOnPerson”
List<Notes>

(以及其他属性)。现在我通过

将“CollOfPersons”绑定到代码中的列表框lb
lb.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绑定感到困惑。我该怎么解决这个问题?

1 个答案:

答案 0 :(得分:1)

这是你要找的吗?

<Expander.Content>
   <ListBox ItemTemplate="{StaticResource NoteTemplate}"
            ItemsSource="{Binding NotesOnPerson}"/>
</Expander.Content>

我不熟悉Expander,但由于NotesOnPerson(可能)属于Person而非Name的属性,因此您应使用的语法。 (Path=是可选的,因为只是将它放入其中是另一种声明Path的方式)