web-dev-qa-db-ja.com

wpf treeviewバインディング

初心者向けのWPFでのツリービューバインディングに関する簡単なチュートリアルはありますか?

アイテムのリストが1つある場合、ItemsSource、DataType、ItemTemplate属性に何を書き込む必要がありますか?

IList<string> items = new List<string>();
items.Add("item1");
items.Add("item2");
items.Add("item3");

XAMLコード:

<TreeView Name="treeView1">  
    <TreeView.Resources> <!-- what does it mean? -->
        <HierarchicalDataTemplate DataType="???" ItemsSource="{Binding ???}"></HierarchicalDataTemplate>  
    </TreeView.Resources>  
</TreeView>
20
pojo

データバインディングでwpfツリービューを使用する方法を完全に理解するために、次のチュートリアルを順番に実行しました-

1)再帰を使用したツリービューバインディングの非常に単純な例

http://testdrivendevelopment.wordpress.com/2008/07/15/databinding-wpf-treeview-using-recursion/

2)Claus Konradsがツリービューとのデータバインディングの簡単な例。これは、私が遭遇した中で最も簡単な例であり、すべての新規参入者をwpfまでスピードアップさせる必要があります。

http://blog.clauskonrad.net/2011/04/how-to-make-hierarchical-treeview.html

3)Mike Hillbergsチュートリアルでは、ツリービューの内外を詳細に示し、他のwpfコントロールと比較して、データをバインドする方法を示しています。

http://blogs.msdn.com/b/mikehillberg/archive/2009/10/30/treeview-and-hierarchicaldatatemplate-step-by-step.aspx

25
Sherlock

ジョシュ・スミスの優れた作品をご覧ください チュートリアル

5
thumbmunkeys

Treeviewは、WPFの1つのコントロールであり、少し異なる方法でアプローチする必要があります。シンプルで効率的であると同時に、初心者、特にWindowsアプリケーションのバックグラウンドから来るものを理解し、理解するのが面倒です。 [〜#〜] mvvm [〜#〜] パターンを最初に使用してから、ツリービューに近づこうとします。

以下のJosh Smithの記事から始めるとよいでしょう。

http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx

0
biju

トリックは、ItemsSourceが次のコレクションを指すことです。

たとえば、タイプAのコレクションがあり、各AにタイプBの説明とコレクションが含まれているとします。各Bには、タイプCの説明とコレクションが含まれています。バインディングは次のようになります。

<TreeView Width="400" ItemsSource="{Binding CollectionOfA}">
    <TreeView.Resources>
        <HierarchicalDataTemplate DataType="{x:Type TypeA}" ItemsSource="{Binding CollectionOfB}">
            <TreeViewItem Header="{Binding TypeADescription}" />
        </HierarchicalDataTemplate>
        <HierarchicalDataTemplate DataType="{x:Type TypeB}" ItemsSource="{Binding CollectionOfC}">
            <TreeViewItem Header="{Binding TypeBDescription" />
        </HierarchicalDataTemplate>
        <HierarchicalDataTemplate DataType="{x:Type TypeC}">
            <TreeViewItem Header="{Binding TypeC}" />
        </HierarchicalDataTemplate>
    </TreeView.Resources>
</TreeView>
0
geometrikal