WPFのTreeViewコントロールにデータをバインドし、バックエンドでデータを動的に追加する。
WPFのTreeViewコントロールでのデータバインディングとバックエンドでの動的データ追加は、次の手順で実現できます:
- XAMLでTreeViewコントロールを定義する:
<TreeView x:Name="MyTreeView" ItemsSource="{Binding TreeData}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Name}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
- 後手のコードでデータモデルとデータソースを定義する。
public class TreeNode
{
public string Name { get; set; }
public ObservableCollection<TreeNode> Children { get; set; }
}
public class ViewModel
{
public ObservableCollection<TreeNode> TreeData { get; set; }
public ViewModel()
{
// 初始化数据源
TreeData = new ObservableCollection<TreeNode>
{
new TreeNode
{
Name = "Parent 1",
Children = new ObservableCollection<TreeNode>
{
new TreeNode { Name = "Child 1" },
new TreeNode { Name = "Child 2" }
}
},
new TreeNode
{
Name = "Parent 2",
Children = new ObservableCollection<TreeNode>
{
new TreeNode { Name = "Child 3" },
new TreeNode { Name = "Child 4" }
}
}
};
}
}
- 窗口やページの構築関数でデータコンテキストを設定し、データを動的に追加する:
public MainWindow()
{
InitializeComponent();
// 设置数据上下文
DataContext = new ViewModel();
// 动态添加数据
TreeNode newNode = new TreeNode { Name = "New Node" };
((ViewModel)DataContext).TreeData.Add(newNode);
}
上記の手順を経ることで、TreeViewコントロールはデータバインディングが可能になり、さらにバックエンドで動的にデータを追加することができます。