评论

wpf里面treeview用法举例

TreeView是WPF中常用的控件之一,用于显示带有层级结构的数据。以下是一个TreeView的示例,展示如何在WPF中使用TreeView控件。

1. XAML文件

创建一个新的WPF应用程序,并打开MainWindow.xaml文件。

在Grid中添加一个TreeView控件,设置它的Name属性为MyTreeView。

```xml <Windowx:Class="WpfApp.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="TreeView Example"Height="450"Width="800"> <Grid> <TreeViewx:Name="MyTreeView"Margin="10"> </TreeView> </Grid> </Window> ```

2. 数据模型

为了在TreeView中显示数据,我们需要创建一个数据模型。在此示例中,我们定义了一个名为Folder的类,它包含一个名称和子文件夹列表。

```csharp publicclassFolder { publicstringName { get; set; } publicList<Folder> SubFolders { get; set; }

publicFolder(stringname){Name = name;SubFolders = newList<Folder>;}}```

3. 数据源

在MainWindow.xaml.cs文件中,我们创建了一个名为MyTreeData的List<Folder>类型的变量,并将其作为TreeView的数据源。

```csharppublicpartialclassMainWindow: Window{publicList<Folder> MyTreeData { get; set; }

publicMainWindow(){InitializeComponent;MyTreeData = GetFolders;MyTreeView.ItemsSource = MyTreeData;}

privateList<Folder> GetFolders(){varfolders = newList<Folder>;varfolder1 = newFolder("Folder 1");folder1.SubFolders.Add(newFolder("Subfolder 1.1"));folder1.SubFolders.Add(newFolder("Subfolder 1.2"));folder1.SubFolders.Add(newFolder("Subfolder 1.3"));varfolder2 = newFolder("Folder 2");folder2.SubFolders.Add(newFolder("Subfolder 2.1"));folder2.SubFolders.Add(newFolder("Subfolder 2.2"));folders.Add(folder1);folders.Add(folder2);returnfolders;}}```

在以上代码中,我们在MainWindow的构造函数中调用GetFolders方法,该方法返回一个包含两个文件夹(Folder 1和Folder 2)的列表。Folder1中包含三个子文件夹(Subfolder 1.1、Subfolder 1.2和Subfolder 1.3),Folder2中包含两个子文件夹(Subfolder 2.1和Subfolder 2.2)。然后,我们将MyTreeData设置为MyTreeView的ItemsSource,这样就可以将数据绑定到TreeView控件上了。

4. 数据绑定

接下来,我们将在TreeView中为数据模型添加样式和模板。在此示例中,我们将为TreeViewItem使用一个自定义样式,以使其更易于区分。

```xml<Window.Resources><StyleTargetType="{x:Type TreeViewItem}"><SetterProperty="IsExpanded"Value="True"/><Style.Triggers><TriggerProperty="IsSelected"Value="True"><SetterProperty="FontWeight"Value="Bold"/></Trigger></Style.Triggers></Style><HierarchicalDataTemplateDataType="{x:Type local:Folder}"ItemsSource="{Binding SubFolders}"><TextBlockText="{Binding Name}"/></HierarchicalDataTemplate></Window.Resources>```

以上代码中,我们定义了一个HierarchicalDataTemplate,用于表示Folder对象的样式。在这个模板中,我们绑定了Folder对象的Name属性到一个TextBlock控件上。我们还设置了一个Trigger,当TreeViewItem被选中时,将其字体加粗。

5. 运行程序

通过按下F5运行程序,即可看到TreeView控件显示文件夹结构的数据。每个TreeViewItem都可以展开和折叠子文件夹,并且可以在TreeView中选择一个文件夹,以便清楚地显示已选中的项。

如果喜欢我的文章,那么

在看”和转发是对我最大的支持!返回搜狐,查看更多

责任编辑:

平台声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
阅读 ()
大家都在看
推荐阅读