WPF C#でTreeViewItemのレベルをどのように取得しますか?
-
02-10-2019 - |
質問
WPF C#でTreeViewItemのレベルをどのように取得しますか? Windowsフォームには、TreeViewクラスのレベルメンバーがありますが、WPF C#用のレベルはないようです。
解決
ビューモデルを作成します。
ビューモデルは、TreeViewでそれなしで達成できるよりも柔軟性を高めることができます。親ノードが見えない場合は、視覚ツリーを歩いてはいけません。仮想化され、レベル(または深さ)の数値が間違っている可能性があります。データをラップし、それがどのレベルであるかを知っているビューモデルを構築します。
ここに投稿された回答をチェックしてください。
回答リンク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;
}
これは、TreeViewのマルチレベルスタイリングに特に役立ちます
所属していません StackOverflow