回答編集履歴
1
バインドでの例 追記
test
CHANGED
@@ -73,3 +73,75 @@
|
|
73
73
|
}
|
74
74
|
}
|
75
75
|
```
|
76
|
+
|
77
|
+
---
|
78
|
+
|
79
|
+
>> のコードでは、やはり中でWPFのコントロールに触れなければならず、
|
80
|
+
> さらに子ノードを追加しているとかですかね?
|
81
|
+
|
82
|
+
`ThemeMode`の確認がてらバインドでの例
|
83
|
+
```xml
|
84
|
+
<Window
|
85
|
+
x:Class="Qrub8esahzjqmu3.MainWindow"
|
86
|
+
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
87
|
+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
88
|
+
xmlns:local="clr-namespace:Qrub8esahzjqmu3"
|
89
|
+
Width="800"
|
90
|
+
Height="450"
|
91
|
+
Loaded="Window_Loaded">
|
92
|
+
<Grid>
|
93
|
+
<TreeView x:Name="treeView">
|
94
|
+
<TreeView.ItemTemplate>
|
95
|
+
<HierarchicalDataTemplate DataType="local:Node" ItemsSource="{Binding Children}">
|
96
|
+
<TextBlock Text="{Binding Name}" />
|
97
|
+
</HierarchicalDataTemplate>
|
98
|
+
</TreeView.ItemTemplate>
|
99
|
+
</TreeView>
|
100
|
+
</Grid>
|
101
|
+
</Window>
|
102
|
+
```
|
103
|
+
```cs
|
104
|
+
using System.Collections.ObjectModel;
|
105
|
+
using System.Windows;
|
106
|
+
|
107
|
+
namespace Qrub8esahzjqmu3;
|
108
|
+
|
109
|
+
public partial class MainWindow : Window
|
110
|
+
{
|
111
|
+
public MainWindow()
|
112
|
+
{
|
113
|
+
InitializeComponent();
|
114
|
+
|
115
|
+
#pragma warning disable WPF0001 // 種類は、評価の目的でのみ提供されています。将来の更新で変更または削除されることがあります。続行するには、この診断を非表示にします。
|
116
|
+
Application.Current.ThemeMode = ThemeMode.Dark;
|
117
|
+
}
|
118
|
+
|
119
|
+
private async void Window_Loaded(object sender, RoutedEventArgs e)
|
120
|
+
{
|
121
|
+
treeView.ItemsSource = await Task.Run(() =>
|
122
|
+
{
|
123
|
+
var root = new Node();
|
124
|
+
Add(root, 10, "Node");
|
125
|
+
return root.Children;
|
126
|
+
});
|
127
|
+
|
128
|
+
static Node Add(Node node, int c, string name)
|
129
|
+
{
|
130
|
+
for (var i = 1; i <= c; i++)
|
131
|
+
{
|
132
|
+
var n = new Node() { Name = $"{name}-{i}", };
|
133
|
+
Add(n, c - 1, n.Name);
|
134
|
+
node.Children.Add(n);
|
135
|
+
}
|
136
|
+
return node;
|
137
|
+
}
|
138
|
+
}
|
139
|
+
}
|
140
|
+
|
141
|
+
public class Node
|
142
|
+
{
|
143
|
+
public string? Name { get; set; }
|
144
|
+
public ObservableCollection<Node> Children { get; } = [];
|
145
|
+
}
|
146
|
+
```
|
147
|
+
![アプリ動画](https://ddjkaamml8q8x.cloudfront.net/questions/2024-10-11/05bae2d7-642e-40bd-9c31-0d3c8ff9d92b.gif)
|