0

2つの類似したサブツリーを持つ階層データ構造があります。

Iteration:
   string  Name
   string  Image
   ObservableCollection<Iteration>  SubIterations
   ObservableCollection<Iteration>  BacklogIterations

2つのツリービューを使用して、わずかに異なる2つのツリービューを表示したいと思います。

  • Tree1:サブイテレーションを表示する
  • Tree2:BacklogIterationsを表示する

要素は同じように表示される必要がありますが、子アイテムは別のプロパティを使用して取得する必要があります。

つまり、HierarchicalDataTemplateのItemsSourceをパラメータ化する必要があります。

<HierarchicalDataTemplate x:Key="IterationItem"
  ItemsSource="{Binding SubIterations}"
  >
  <StackPanel Orientation="Horizontal">
    <Image Width="32" Height="32" 
       Margin="3,0" Source="{Binding Picture}" />
    <TextBlock Text="{Binding Name}" />
  </StackPanel>
</HierarchicalDataTemplate>

<TreeView ItemsSource="{Binding RootSprintIteration}">
</TreeView>

<TreeView ItemsSource="{Binding RootBacklogIteration}">
</TreeView>

2番目のツリーのHierarchicalDataTemplateを取得して、別のItemsSourceを使用するにはどうすればよいですか?ItemsSourceを変更するためだけに、HierarchicalDataTemplate定義全体を複製したくありません。

4

1 に答える 1

1

データのViauslizationをDataTemplateに配置し、ItemTemplateを作成されたDataTemplateに設定する2つのHierarchicalDataTemplatesを作成します。2つのHierarchicalDataTemplatesを作成する必要がある理由はありません。彼らはあなたが望む正確にパラメータ化を提供し、あなたが両方に同じItemTemplateを使用することを可能にします

于 2011-04-28T12:44:11.940 に答える