Basic Library for WPF/Silverlight
ツリービュー要素
製品の概要 > TreeView > ツリービュー要素

C1TreeView クラスは、次の2つの要素から成る1つの StackPanel です。

C1TreeView コントロールに追加する C1TreeViewItem は、XAML または分離コードで静的な項目として定義できます。または、ページまたはユーザーコントロール上に次のいずれかの方法を使用して定義することもできます。

ツリー内の各ノードは、ツリーノードのテキストプロパティと値プロパティで定義される名前/値のペアで表されます。ノードのテキストはレンダリングされますが、ノードの値はレンダリングされず、通常はポストバックイベントを処理するための追加データとして使用されます

静的なメニューは、ツリービュー構造を作成するための最も簡単な方法です。

XAML 構文を使用して静的な C1TreeViewItem を表示するには、最初に、C1TreeView コントロールの開始タグと終了タグの間に <c1:C1TreeViewItem> の開始タグと終了タグをネストします。次に、<c1:C1TreeViewItem> の開始タグと終了タグの間に <c1:C1TreeViewItem> 要素をネストして、ツリービュー構造を作成します。各 <c1:C1TreeViewItem> 要素は、コントロール内の1つのノードを表し、C1TreeViewItem オブジェクトにマップされます。

宣言構文を使用すると、C1TreeViewItem をページ内でインライン定義できます。

次に例を示します。

XAML
コードのコピー
Grid x:Name="LayoutRoot"> 
    <c1:C1TreeView x:Name="Tree">  
         <c1:C1TreeViewItem Header="ジャンル一覧" IsExpanded="True" IsSelected="True">
                <c1:C1TreeViewItem Header="文学"/>
                <c1:C1TreeViewItem Header="ノンフィクション"/>
                <c1:C1TreeViewItem Header="ビジネス">
                    <c1:C1TreeViewItem Header="経済学"/>
                    <c1:C1TreeViewItem Header="マーケティング"/>
                </c1:C1TreeViewItem>
         </c1:C1TreeViewItem>
     </c1:C1TreeView>
</Grid>

動的なツリービューは、サーバー側またはクライアント側で作成できます。サーバー側で動的なツリービューを作成する場合は、C1TreeView クラスの新しいインスタンスを動的に作成するためのコンストラクタを使用します。次に例を示します。

Visual Basic
コードのコピー
Public Sub New()
            InitializeComponent()
            InitializeTreeView()
        End Sub
        Private Sub InitializeTreeView()
          
            ' 設計時に追加された項目を削除します
          
            Tree.Items.Clear()
          
            Dim booklist As New C1TreeViewItem()
            booklist.Header = "ジャンル一覧"
            'booklist.Foreground = new SolidColorBrush( Colors.Brown);
            Tree.Items.Add(booklist)
          
            ' 子項目を追加します
            Dim language As New C1TreeViewItem()
            language.Header = "文学"
            booklist.Items.Add(language)
          
            ' 子項目を追加します
            Dim security As New C1TreeViewItem()
            security.Header = "ノンフィクション"
           booklist.Items.Add(security)
          
            ' 子項目を追加します
            Dim classic As New C1TreeViewItem()
            classic.Header = "ビジネス"
            booklist.Items.Add(classic)
            'チェックボックスを追加します
            classic.Header = New CheckBox()
          
            ' 子項目を追加します
            Dim subclassic As New C1TreeViewItem()
            subclassic.Header = "経済学"
            classic.Items.Add(subclassic)
            Dim subclassic2 As New C1TreeViewItem()
            subclassic2.Header = "マーケティング"
            classic.Items.Add(subclassic2)
        End Sub
C#
コードのコピー
 public MainWindow()
        {
            InitializeComponent();
            InitializeTreeView();
          
        }
       void InitializeTreeView()
       {
            // 設計時に追加された項目を削除します
            Tree.Items.Clear();
          
            C1TreeViewItem booklist = new C1TreeViewItem();
            booklist.Header = "ジャンル一覧";
           //booklist.Foreground = new SolidColorBrush( Colors.Brown);
           Tree.Items.Add(booklist);
 
           // 子項目を追加します
          C1TreeViewItem language = new C1TreeViewItem();
          language.Header = "文学";
          booklist.Items.Add( language );
         // 子項目を追加します
         C1TreeViewItem security = new C1TreeViewItem();
         security.Header = "ノンフィクション";
         booklist.Items.Add(security);
        // 子項目を追加します
        C1TreeViewItem classic = new C1TreeViewItem();
        classic.Header = "ビジネス";
        booklist.Items.Add(classic);
        //チェックボックスを追加します
        classic.Header = new CheckBox();
       // 子項目を追加します
       C1TreeViewItem subclassic = new C1TreeViewItem();
       subclassic.Header = "経済学";
       classic.Items.Add(subclassic);
       C1TreeViewItem subclassic2 = new C1TreeViewItem();
       subclassic2.Header = "マーケティング";
       classic.Items.Add(subclassic2);
}    

XMLDataSource、SiteMapDataSource などの階層化データソースコントロールから TreeView 項目を作成できます。これにより、コードを編集しなくてもツリービュー項目を更新できるようになります。

C1TreeView の ItemsSource として複数レベルのデータを使用する場合は、それらの項目に対して1つの C1HierarchicalDataTemplate を指定する必要があります。

このテンプレートは、C1TreeView に次のレベルのデータがある場所を通知します。これは、C1HierarchicalDataTemplate の "ItemsSource" プロパティによって行われます。

 

あるノードに画像を追加するには、その最初の子(ヘッダー)を取得し、それを StackPanel にキャストし、画像要素を任意の場所に挿入します。次に例を示します。

Code
コードのコピー
StackPanel nodeHeader = TreeNode.Children[0] as StackPanel;
nodeHeader.Children.Insert(0, myImage);