3

WPF C#でtreeviewitemのレベルを取得するにはどうすればよいですか?Windowsフォームには、treeviewクラスの.Levelメンバーがありますが、WPF C#のメンバーはないようです。

4

2 に答える 2

3

ビューモデルを作成します。

ビューモデルは、ツリービューがない場合よりもツリービューの方が柔軟性が高くなります。親ノードが表示されていない場合は、仮想化されてレベル(または深度)の数値が間違っている可能性があります。データをラップし、データがどのレベルにあるかを知るビューモデルを構築します。

ここに投稿された回答を確認してください。

リンク1に回答します(ビューモデルに別のプロパティを追加します-レベル)

ツリービュービューモデルのデモ

于 2010-07-05T23:57:40.000 に答える
1

コンバーターでやりたかったのでコンバーターでやりました<style>

<DataTrigger Binding="{Binding Parent, RelativeSource={RelativeSource Self}, Converter={StaticResource TreeViewItemConverter}}" Value="1">
         <Setter TargetName="Bd" Property="Background"  Value="Yellow"/>
</DataTrigger>

そしてコンバーター

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if ((value as TreeView) != null)//level 1
            return 0;

        var item = (value as TreeViewItem);
        if (item != null) // level 2 and 3
            return (item.Parent as TreeViewItem)!=null ? 2 : 1;
        return 0;
    }

これは、ツリービューでのマルチレベルのスタイリングに特に役立ちます

于 2013-02-08T10:07:22.573 に答える