我做了一个示例项目来展示我的问题。它可以完整下载(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?
答案 0 :(得分:1)
将ItemsSource绑定更改为:
ItemsSource="{Binding Path=SelectedItem.Lines, ElementName=listBox2}"
当您在页面列表中选择页面时,便会正确更新便笺列表。
答案 1 :(得分:1)
尝试将绑定设置为页面列表框中的所选项目:
<ListBox Height="80" x:Name="listBox3" ItemsSource="{Binding SelectedItem.Lines, ElementName=listBox2}" />