質問

WPF C#でTreeViewItemのレベルをどのように取得しますか? Windowsフォームには、TreeViewクラスのレベルメンバーがありますが、WPF C#用のレベルはないようです。

役に立ちましたか?

解決

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

ビューモデルは、TreeViewでそれなしで達成できるよりも柔軟性を高めることができます。親ノードが見えない場合は、視覚ツリーを歩いてはいけません。仮想化され、レベル(または深さ)の数値が間違っている可能性があります。データをラップし、それがどのレベルであるかを知っているビューモデルを構築します。

ここに投稿された回答をチェックしてください。

回答リンク1 (あなたはあなたのビューモデルに別のプロパティを追加するでしょう - レベル)

TreeViewビューモデルデモ

他のヒント

私はそれをやりたかったので、私はコンバーターでそれをしました <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;
    }

これは、TreeViewのマルチレベルスタイリングに特に役立ちます

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top