TreeView コントロールのすべての項目にデータを格納することは可能ですか? つまり、ヘッダー テキスト以外の便利なもの (文字列など) はありますか? ありがとう。
2 に答える
はい、WPF は「ルックレス」であるため、実際のデータは任意のものにすることができ、事前に決められた方法でデータをユーザーに表示するために使用されますTreeView
。Template
その一部を上書きしてTemplate
、必要に応じてデータにバインドしたり、必要に応じてデータにバインドしたりできます。
編集
私は TreeView の使用に関する専門家ではありませんが、 の DataContext がありList<Folder>
、各Folder
オブジェクトにName
とFullPath
プロパティがある場合、TreeView は次のようになります。
<TreeView ItemsSource="{Binding MyFolderList}">
<TreeView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"
ToolTip="{Binding FullPath}" />
</DataTemplate>
</TreeView.ItemTemplate>
</TreeView>
まだお持ちでない場合は、WPF を使用する際に MVVM の設計パターンを調べることを強くお勧めします。基本的に、アプリケーションはクラス (ViewModel) であり、コントロール/XAML (ビュー) は、クラスをユーザーフレンドリーにするためにクラスの上に置かれる単なるレイヤーです。
これは、WinForms TreeView から WPF TreeView に切り替える際の重要な概念です。
ストアデータの意味によって異なります...
UIのカスタマイズについて話しているだけなら、上記のレイチェルの答えが機能します。
TreeViewItem に関する情報や 2 つのアイテム間の関係など、任意のオブジェクト値を保存することについて話している場合は、TreeViewItem の Tag プロパティを使用できます。たとえば、最初のツリーの各 TreeViewItem が 2 番目のツリーの 1 つの TreeViewItem に接続できるように、2 つのツリーがリンクするマッピング UI を作成する必要がありました。最初の TreeViewItem の Tag プロパティを使用して、接続する TreeViewItem を格納しました。