
XML
使用 TreeView 控件可以在界面上展示层级结构的数据,用户可以通过选择其中的节点来进行操作。在 WPF 中,当用户选择一个节点时,可以通过绑定 SelectedItem 属性将选中的节点的数据同步到视图模型中,以便后续的处理。
首先,我们需要在 XAML 中定义 TreeView 控件,并设置其 ItemsSource 属性为一个层级结构的数据源。这个数据源可以是一个集合,每个元素都包含一个子集合,以此类推形成层级结构。例如,我们可以创建一个包含多个 Department 对象的集合,每个 Department 对象都包含一个包含多个 Employee 对象的集合。XML<TreeView ItemsSource="{Binding Departments}"> <TreeView.ItemTemplate> <HierarchicalDataTemplate ItemsSource="{Binding Employees}"> <TextBlock Text="{Binding Name}" /> <HierarchicalDataTemplate.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Name}" /> </DataTemplate> </HierarchicalDataTemplate.ItemTemplate> </HierarchicalDataTemplate> </TreeView.ItemTemplate></TreeView>接下来,在视图模型中定义 SelectedItem 属性,用于保存用户选择的节点数据。这个属性可以绑定到 TreeView 的 SelectedItem 属性,以实现数据的双向绑定。csharpprivate object _selectedItem;public object SelectedItem{ get { return _selectedItem; } set { _selectedItem = value; OnPropertyChanged(nameof(SelectedItem)); }}然后,在 XAML 中将 TreeView 的 SelectedItem 属性绑定到视图模型的 SelectedItem 属性。XML<TreeView ItemsSource="{Binding Departments}" SelectedItem="{Binding SelectedItem}" ...>现在,当用户在界面上选择一个节点时,视图模型中的 SelectedItem 属性就会自动更新为所选节点的数据。可以通过在视图模型中处理 SelectedItem 属性的变化来进行后续的操作,例如显示选中节点的详细信息或执行相关的逻辑。案例代码:下面是一个简单的示例代码,演示了如何使用 TreeView 同步到视图模型中的 SelectedItem。XML<Grid> <TreeView ItemsSource="{Binding Departments}" SelectedItem="{Binding SelectedItem}" /></Grid>csharppublic class Department{ public string Name { get; set; } public ObservableCollection<Employee> Employees { get; set; }}public class Employee{ public string Name { get; set; }}public class ViewModel : INotifyPropertyChanged{ public ObservableCollection<Department> Departments { get; set; } private object _selectedItem; public object SelectedItem { get { return _selectedItem; } set { _selectedItem = value; OnPropertyChanged(nameof(SelectedItem)); } } public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged(string propertyName) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); }}在上述示例中,我们创建了一个包含多个 Department 对象的集合,每个 Department 对象都包含一个包含多个 Employee 对象的集合。通过在 XAML 中绑定 Departments 属性,将数据源绑定到 TreeView 控件上。同时,将 SelectedItem 属性绑定到视图模型中的 SelectedItem 属性。通过以上的设置,当用户选择 TreeView 中的节点时,视图模型中的 SelectedItem 属性会自动更新为所选节点的数据。我们可以在视图模型中处理 SelectedItem 属性的变化,以实现相应的逻辑操作。Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号