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

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

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

前言

比方說(shuō)我們有以下兩個(gè)類:

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

一個(gè)表示班級(jí),一個(gè)表示學(xué)生,一個(gè)班級(jí)包含多個(gè)學(xué)生。在WPF中我們?cè)撊绾物@示這種具有層級(jí)關(guān)系的數(shù)據(jù)呢?

今天給大家介紹的是用TreeViewHierarchicalDataTemplate進(jìn)行顯示。

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

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

創(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 = "班級(jí)1",
         Students = students1
     };

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

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

     DataContext = classes;

 }

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

xaml:

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

HierarchicalDataTemplate介紹

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

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

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

通過(guò)使用HierarchicalDataTemplate,您可以更靈活地控制數(shù)據(jù)的呈現(xiàn)方式,使您能夠創(chuàng)建具有深層次結(jié)構(gòu)的動(dòng)態(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)對(duì)于Class類,使用了一個(gè)HierarchicalDataTemplateItemsSource綁定的是Class類的Students屬性。

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

查看實(shí)現(xiàn)效果

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

總結(jié)

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

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

相關(guān)文章

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

    深入淺析C#中的var和dynamic

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

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

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

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

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

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

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

    C#中間語(yǔ)言及ILDASM工具用法

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

    C#實(shí)現(xiàn)語(yǔ)音播報(bào)功能

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

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

    EventWaitHandle是C#中用于線程間同步的一個(gè)類,它提供了對(duì)共享資源的訪問(wèn)控制,以及線程間的同步機(jī)制,本文就來(lái)介紹一下EventWaitHandle用法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-04-04
  • C# 中的EventHandler實(shí)例詳解

    C# 中的EventHandler實(shí)例詳解

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

    C#集合之字典的用法

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

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

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

最新評(píng)論