2011-02-08 8 views
1

を使用して2つのツリービューを持つことができるように、私はツリービューでDynamicResourceを使用するにはどうすればよい私はリソースを定義することができます私はその中でリストビューでこれをやった同じキー

<UserControl.Resources> 
    <GridView x:Key="MyGrid" x:Shared="False"> 
     <!-- Defines what's in the grid view --> 
    </GridView> 
</UserControl.Resources> 

その後、私は2つのビューを持つことができます同じグリッドを使用して:

<ListView View="{DynamicResource MyGrid}" ItemsSource="{Binding Path=TodaysItems}"/> 
<ListView View="{DynamicResource MyGrid}" ItemsSource="{Binding Path=TomorrowsItems}"/> 

私はTreeViewsで同じことをしようとしています。私は、ツリービュー定義しました:

<UserControl.Resources> 
    <TreeView x:Key="MyTreeView" x:Shared="False"> 
     <!-- Defines what's in the Tree view --> 
    </TreeView> 
</UserControl.Resources> 

をしかし、私は

<TreeView ???="{DynamicResource MyTreeView}" ItemsSource="{Binding Path=ClientData}"/> 
<TreeView ???="{DynamicResource MyTreeView}" ItemsSource="{Binding Path=CustomerData}"/> 

私もこれを行うことができますを行うために必要なものを見つけることができませんか?

答えて

1

TreeViewとすることはできません。 ListViewでそれを行う理由は、異なるビューに設定できるプロパティーViewがあるためです。この場合のビューは、スタンドアロンのUI要素ではなく、ListViewの「設定」だけです。 TreeViewはListViewのようなUI要素ですが、

XAMLで再利用するコマンドアプローチはStylesです。 TreeViewのスタイルを定義して共通のプロパティを定義し、好きなだけ多くの要素に適用することができます。ここで

はあなたのスタイルを定義する方法の例です:

<Style x:Key="MyTreeStyle" 
     TargetType="{x:Type TreeView}"> 
    <Setter Property="Background" 
      Value="Red"/> 
    <!-- Other property setters go here --> 
</Style> 

そして、ここでは、あなたがそれを適用する方法である:

<TreeView Style="{StaticResource MyTreeStyle}" ItemsSource="{Binding Path=ClientData}"/> 
<TreeView Style="{StaticResource MyTreeStyle}" ItemsSource="{Binding Path=CustomerData}"/> 
+0

おかげ@Pavlo Glazkov。 My TreeViewには、グリッドを持つListViewが含まれています。私はDynamicResourceグリッド ''それから、必要な2つのTreeViewからそれを使用します。それは重複したコードの量を減らしますが、私が望んでいたほどではありません。 – JLWarlow

関連する問題