C1TreeViewコントロールについて
TreeView for Silverlightは、データ項目を階層的に表示するコントロールです。WPFやWindowsフォーム、Silverlightに標準で装備されているTreeViewコントロールに似ていますが、標準コントロールよりもさらに多い、次のような機能を備えています。
ノードのドラッグ&ドロップ
C1TreeViewコントロールは、ツリー内のドラッグ&ドロップ操作をサポートします。AllowDragDropプロパティを「true」に設定するだけで、ツリー内のノードをドラッグして並べ替えることができます。また、ドラッグ&ドロップの操作中にイベントを発生し、このイベントを使って一部のノードのドラッグを禁止したり、一部のノードがドロップ先にならないように指定できます。
キーボードによる移動
カーソルキーを使用して、ノード間の移動や、ノードの展開・折りたたみができます。また、自動検索機能を使用して、特定のノードをすばやく簡単に見つけることができます。
ノードのカスタマイズ
リスト項目となっているノードヘッダーはコンテンツ要素なので、任意の種類の要素をホストできます。画像、チェックボックスなど、アプリケーションに必要なあらゆる要素を追加できます。
Silverlight Toolkitテーマのサポート
ExpressionDark、ExpressionLight、WhistlerBlue、RainierOrange、ShinyBlue、BureauBlackなど、よく使用されているMicrosoft Silverlight Toolkitテーマが組み込みでサポートされており、それを使ってUIにスタイルを追加できます。
C1TreeViewクラスは、次の2つの要素からなる、1つのStackPanelです。
- 実際のノードを表すヘッダー
- 別のStackPanelからなる本体
各リスト項目はC1TreeViewItemクラスになっており、それぞれにHeaderオブジェクトを持ちます。このHeaderオブジェクト内にStackPanelコントロールを組み込むことで、リスト項目にImage、TextBlock、CheckBoxなどのコントロールを組み込むことができます。C1TreeViewクラスは、C1TreeViewItemクラスを入れ子状に配置することで、リスト項目を階層状に表示します。
C1TreeViewコントロールのAllowDragDropプロパティを「true」に設定すると、ノード、ノードの間、または1つのツリーから別のツリーにドラッグ&ドロップできます。
実行時にユーザーがノードをクリックすると、そのノードは自動的に選択中としてマークされ、C1TreeViewコントロールにSelectionChangedイベントが発生します。現在選択中の項目を取得するには、SelectedItemプロパティを使用します。ノードの操作では、マウスとキーボードによる移動をサポートします。それぞれの操作とコントロールのアクションは、次表のようになります。
アクション | マウスコマンド |
ノードの展開 | ノード名の左側にあるプラス記号をクリック |
ノードの折りたたみ | ノード名の左側にあるマイナス記号をクリック |
ノードの選択 | ノード名をクリック |
アクション | キーボードコマンド |
ノードの展開 | [+]キー |
ノードの折りたたみ | [-]キー |
ノードを上に移動 | [↑]キー |
ノードを下に移動 | [↓]キー |
複数ノードの選択 | [Ctrl]キー+クリック |
今回は、このC1TreeViewコントロールの機能の中で、ドラッグ&ドロップによるリスト項目の移動を使ったアプリケーションを作成します。