2012-04-10 8 views
0

私はリスト "List MyItems"を含むオブジェクトMyResultを持っています。リストをC#に追加TreeView

私はこれをC#WPF TreeViewに追加したいと思います。

これを行うにはどうすればよいでしょうか?

これについては、ステップバイステップのチュートリアルはありますか?私はなど、すべてのMVVMクラスで

おかげ

答えて

1

を混乱していますので、私はあなたのリストのあなたのオブジェクトは、リストのいくつかの並べ替えを持っていると仮定しています。 その場合は、hierarchicaldatatemplateを使用して見てください。

単純な例は、次のようなものかもしれません。これはradtreeviewで使用したセグメントのものですが、同じように動作するはずです。

<!-- xaml --> 
<UserControl.Resources> 

      <Style x:Key="_treeViewItemStyle" TargetType="telerik:RadTreeViewItem"> 
       <Setter Property="Visibility" Value="{Binding IsVisible, Converter={StaticResource VisibilityConverter}}" /> 
      <Setter Property="IsEnabled" Value="{Binding IsEnabled}"/> 
      <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}"/> 
      <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}"/> 
      <Setter Property="HorizontalAlignment" Value="Left"/> 
     </Style> 

     <UI:HierarchicalDataTemplate x:Key="_treeViewTemplate" 
          ItemsSource="{Binding NodeItems}" 
              > 

       <TextBlock Margin="3,0,0,0" Text="{Binding Header}"> 
       </TextBlock> 

     </UI:HierarchicalDataTemplate> 

    </UserControl.Resources> 


    <telerik:RadTreeView x:Name="_pageNavigator" ItemsSource="{Binding InspNavList}" ItemDoubleClick="SendFocusToPage" SelectedItem="{Binding SelectedNavItem, Mode=TwoWay}" ItemTemplate="{StaticResource _treeViewTemplate}" ItemContainerStyle="{StaticResource _treeViewItemStyle}" /> 
1

あなたは

treeview.ItemsSource =マイリストを使用することができます。

Hereは、MVVMを使用して行う方法のチュートリアルです。

+0

+1これは動作します。ありがとう。 – Stef

1

これを実行する最善の方法はありません。さて、実際にはありますが、システムそのものや現在の状況(深い知識だけでなく)についてのより多くのデータが必要です。さて、それを脇に置いてください。

あなたは次のことを行うことができ、バインディングを使用したい場合:

。ページ/ウィンドウ/ usercontrolで、オブジェクト(MyResult)を指すようにDataContextプロパティを設定します。

b。

<TreeView ItemsSource={Binding MyItems}> 
    .... 
    </TreeView> 

C:あなたのXAMLファイルの使用の際には、そのリストにツリービュー項目をバインドするスニペットを以下に示します。結果をお楽しみください。

考慮すべき点がいくつかあります。 1. MyItemsオブジェクトにDataTemplateを実装する必要があります。デフォルトの実装では、ToString()の結果をツリービューに入れるだけです。 2.階層データ(レベルを持つデータ)を使用する場合は、HierarchicalDataTemplateを実装し、ツリー内のすべてのノードの子を取得する場所を指す必要があります。 3.正しいバインディングのためにObservableCollectionを使用することを検討する必要があります。この方法では、リスト内の項目を追加/削除するたびにUIの変更が呼び出されます。

ここでは、開始するためのいくつかのリンク:first,secondthirdがあります。

+0

私はこれを見つけました。これは、以下から始めるのに最適です:http://stackoverflow.com/questions/6415037/populate-treeview-from-list-of-file-paths-in-wpf – Stef

関連する問題