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 に答える