0

TreeView コントロールのすべての項目にデータを格納することは可能ですか? つまり、ヘッダー テキスト以外の便利なもの (文字列など) はありますか? ありがとう。

4

2 に答える 2

3

はい、WPF は「ルックレス」であるため、実際のデータは任意のものにすることができ、事前に決められた方法でデータをユーザーに表示するために使用されますTreeViewTemplate

その一部を上書きしてTemplate、必要に応じてデータにバインドしたり、必要に応じてデータにバインドしたりできます。

編集

私は TreeView の使用に関する専門家ではありませんが、 の DataContext がありList<Folder>、各FolderオブジェクトにNameFullPathプロパティがある場合、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 に切り替える際の重要な概念です。

于 2011-09-20T16:59:48.647 に答える
1

ストアデータの意味によって異なります...

UIのカスタマイズについて話しているだけなら、上記のレイチェルの答えが機能します。

TreeViewItem に関する情報や 2 つのアイテム間の関係など、任意のオブジェクト値を保存することについて話している場合は、TreeViewItem の Tag プロパティを使用できます。たとえば、最初のツリーの各 TreeViewItem が 2 番目のツリーの 1 つの TreeViewItem に接続できるように、2 つのツリーがリンクするマッピング UI を作成する必要がありました。最初の TreeViewItem の Tag プロパティを使用して、接続する TreeViewItem を格納しました。

于 2011-09-20T17:05:31.783 に答える