欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解WPF如何顯示具有層級關系的數(shù)據(jù)

 更新時間:2024年04月23日 08:17:13   作者:mingupupup  
這篇文章主要為大家詳細介紹了在WPF中如何顯示具有層級關系的數(shù)據(jù),文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

前言

比方說我們有以下兩個類:

 public class Class
 {
     public string? Name { get; set; }
     public List<Student>? Students { get; set; }
 }
 public class Student
 {
     public string? Name { get; set; }
 }

一個表示班級,一個表示學生,一個班級包含多個學生。在WPF中我們該如何顯示這種具有層級關系的數(shù)據(jù)呢?

今天給大家介紹的是用TreeViewHierarchicalDataTemplate進行顯示。

實現(xiàn)效果如下所示:

如果你對此感興趣,可以接著往下閱讀。

創(chuàng)建數(shù)據(jù)

 private void Button_Click(object sender, RoutedEventArgs e)
 {
     Student student1 = new Student() { Name = "小明" };
     Student student2 = new Student() { Name = "小紅" };
     Student student3 = new Student() { Name = "小黃" };
     Student student4 = new Student() { Name = "小綠" };
     Student student5 = new Student() { Name = "小剛" };

     List<Student> students1 = new List<Student>()
     {
         student1,
         student2,
         student3
     };

     List<Student> students2 = new List<Student>()
     {              
         student4,
         student5
     };

     Class class1 = new Class()
     {
         Name = "班級1",
         Students = students1
     };

     Class class2 = new Class()
     {
         Name = "班級2",
         Students = students2
     };

     List<Class> classes = new List<Class>()
     {
         class1,
         class2
     };

     DataContext = classes;

 }

數(shù)據(jù)模板的使用

xaml:

  <TreeView>
      <TreeViewItem ItemsSource="{Binding}" Header="全部班級"/>
  </TreeView>

HierarchicalDataTemplate介紹

HierarchicalDataTemplateWPF(Windows Presentation Foundation)中的一種數(shù)據(jù)模板,用于在樹狀結(jié)構或?qū)哟谓Y(jié)構中顯示數(shù)據(jù)。它允許您定義如何呈現(xiàn)包含子項的數(shù)據(jù)對象。

通過HierarchicalDataTemplate,您可以指定一個模板,用于呈現(xiàn)數(shù)據(jù)對象本身,以及一個模板,用于呈現(xiàn)其子項。這使得在TreeView等控件中輕松顯示復雜的數(shù)據(jù)結(jié)構,如文件夾和文件、組織架構等。

通常,您會在ItemsSource屬性中指定數(shù)據(jù)源,然后使用HierarchicalDataTemplate定義每個級別的數(shù)據(jù)對象應該如何呈現(xiàn)。

通過使用HierarchicalDataTemplate,您可以更靈活地控制數(shù)據(jù)的呈現(xiàn)方式,使您能夠創(chuàng)建具有深層次結(jié)構的動態(tài)UI。

HierarchicalDataTemplate的使用

xaml:

<Window.Resources>
    <HierarchicalDataTemplate DataType = "{x:Type local2:Class}"
       ItemsSource = "{Binding Path=Students}">
        <TextBlock Text="{Binding Path=Name}"/>
    </HierarchicalDataTemplate>

    <DataTemplate DataType="{x:Type local2:Student}">
        <TextBlock Text="{Binding Path=Name}"/>
    </DataTemplate>
</Window.Resources>

我們可以發(fā)現(xiàn)對于Class類,使用了一個HierarchicalDataTemplate,ItemsSource綁定的是Class類的Students屬性。

Student類并沒有再含有層次數(shù)據(jù)了所有直接使用DataTemplate就好了。

查看實現(xiàn)效果

最后實現(xiàn)的效果如下所示:

總結(jié)

在日常開發(fā)過程中,我們可能也會有顯示層級數(shù)據(jù)的需求,本文通過一個簡單的Demo,介紹了在WPF中通過TreeView控件HierarchicalDataTemplate層級數(shù)據(jù)模板進行層級數(shù)據(jù)的顯示。

到此這篇關于詳解WPF如何顯示具有層級關系的數(shù)據(jù)的文章就介紹到這了,更多相關WPF顯示層級關系數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 深入淺析C#中的var和dynamic

    深入淺析C#中的var和dynamic

    這篇文章給大家介紹了C#中的var和dynamic的相關知識,var和dynamic的本質(zhì)區(qū)別是類型判斷的時間不同,前者是編譯時,后者是運行時。具體內(nèi)容詳情大家通過本文學習下吧
    2018-05-05
  • 深入理解C♯ 7.0中的Tuple特性

    深入理解C♯ 7.0中的Tuple特性

    這篇文章主要介紹了C#7中Tuple特性的相關資料,文中通過示例代碼介紹的非常詳細,相信對大家具有一定的參考價值,需要的朋友可以們下面來一起學習學習吧。
    2017-03-03
  • C#?輸出參數(shù)out問題

    C#?輸出參數(shù)out問題

    這篇文章主要介紹了C#?輸出參數(shù)out問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C#預定義的基礎類型轉(zhuǎn)換

    C#預定義的基礎類型轉(zhuǎn)換

    這篇文章介紹了C#預定義的基礎類型轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#中間語言及ILDASM工具用法

    C#中間語言及ILDASM工具用法

    這篇文章介紹了C#中間語言及ILDASM工具用法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-01-01
  • C#實現(xiàn)語音播報功能

    C#實現(xiàn)語音播報功能

    這篇文章主要為大家詳細介紹了C#實現(xiàn)語音播報功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C#中EventWaitHandle的用法小結(jié)

    C#中EventWaitHandle的用法小結(jié)

    EventWaitHandle是C#中用于線程間同步的一個類,它提供了對共享資源的訪問控制,以及線程間的同步機制,本文就來介紹一下EventWaitHandle用法,具有一定的參考價值,感興趣的可以了解一下
    2025-04-04
  • C# 中的EventHandler實例詳解

    C# 中的EventHandler實例詳解

    本文通過案例實例介紹了c#中的eventhandler,需要的的朋友參考下吧
    2017-04-04
  • C#集合之字典的用法

    C#集合之字典的用法

    這篇文章介紹了C#集合之字典的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 在C#中List集合使用First()方法獲取第一個元素的操作

    在C#中List集合使用First()方法獲取第一個元素的操作

    這篇文章主要介紹了在C#中List集合使用First()方法獲取第一個元素的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12

最新評論