温馨提示×

WPF:在 MVVM 中绑定 TreeView 的分步教程

wpf
小云
137
2023-09-26 06:34:25
栏目: 编程语言

以下是在MVVM中绑定TreeView的分步教程:

步骤1:创建一个新的WPF项目。在项目中添加一个ViewModel类和一个Model类。ViewModel类将包含用于绑定TreeView的数据和命令,而Model类将包含实际的数据。

步骤2:在ViewModel类中声明一个ObservableCollection属性,用于存储TreeView的节点。

private ObservableCollection<TreeNode> _nodes;
public ObservableCollection<TreeNode> Nodes
{
get { return _nodes; }
set
{
_nodes = value;
OnPropertyChanged("Nodes");
}
}

步骤3:在Model类中定义一个TreeNode类,该类将表示TreeView的节点。TreeNode类应包含一个名称属性和一个子节点集合。

public class TreeNode
{
public string Name { get; set; }
public ObservableCollection<TreeNode> Children { get; set; }
}

步骤4:在ViewModel类的构造函数中创建TreeView的示例数据。

public MainViewModel()
{
Nodes = new ObservableCollection<TreeNode>()
{
new TreeNode()
{
Name = "Node 1",
Children = new ObservableCollection<TreeNode>()
{
new TreeNode() { Name = "Subnode 1.1" },
new TreeNode() { Name = "Subnode 1.2" }
}
},
new TreeNode()
{
Name = "Node 2",
Children = new ObservableCollection<TreeNode>()
{
new TreeNode() { Name = "Subnode 2.1" },
new TreeNode() { Name = "Subnode 2.2" }
}
}
};
}

步骤5:在MainWindow.xaml中添加TreeView控件,并将其ItemsSource属性绑定到ViewModel中的Nodes属性。

<TreeView ItemsSource="{Binding Nodes}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Name}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>

步骤6:在MainWindow.xaml.cs中设置MainWindow的DataContext为ViewModel的实例。

public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new MainViewModel();
}
}

现在,您应该能够在TreeView中看到绑定的节点和子节点。您可以通过在ViewModel中的Nodes属性中添加、删除或更改节点来动态修改TreeView的内容。

0