1

我制作了一个示例项目来展示我的问题。它可以完整下载(BookExample.zip),但这里是快速纲要:

我有以下数据模型:

Course
  Name
  Book
    Name
    Pages
      Note
      Number
      Lines
        Note
        Number

实际数据是 Course 实例列表,其中每个实例包含一个 Page 实例列表(“Pages”),其中每个实例包含一个 Line 类型对象列表(“Lines”)。我的目标是将此结构绑定到以下 UI:BookExample02.png

正确设置数据上下文后,更改课程选择会更改相关书籍文本和页面注释列表。但是我不能更深入:我做不到,所以“行注释”列表会根据“页面注释”列表中的选择而变化。

“行注释”列表不为空的唯一原因是因为在 XAML 中我写了这个:

<ListBox Height="80" x:Name="listBox3" ItemsSource="{Binding Book.Pages[0].Lines}" />

所以它总是显示第一页项目的 Lines 属性。如何用“页面注释”列表框中的选择索引替换 0?

4

2 回答 2

1

将 ItemsSource 绑定更改为:

ItemsSource="{Binding Path=SelectedItem.Lines, ElementName=listBox2}"

当您在页面列表中选择一个页面时,便笺列表将正确更新。

于 2012-05-29T11:30:13.027 回答
1

尝试将绑定设置为页面列表框中的选定项目:

<ListBox Height="80" x:Name="listBox3" ItemsSource="{Binding SelectedItem.Lines, ElementName=listBox2}" />
于 2012-05-29T11:33:12.813 回答