国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

解析WPF綁定層次結構數據的應用詳解

來源:懂視網 責編:小采 時間:2020-11-27 22:41:02
文檔

解析WPF綁定層次結構數據的應用詳解

解析WPF綁定層次結構數據的應用詳解:在實際項目應用中會存在多種類型的層次結構數據,WPF提供了良好的數據綁定機制。其中運用最頻繁的就是ListBox和TreeView控件。一、ListBox和TreeView控件的區別1.ListBox顯示單層次數據集合,TreeView可以顯示單層次和多層次數據集合;2.通過ListBox
推薦度:
導讀解析WPF綁定層次結構數據的應用詳解:在實際項目應用中會存在多種類型的層次結構數據,WPF提供了良好的數據綁定機制。其中運用最頻繁的就是ListBox和TreeView控件。一、ListBox和TreeView控件的區別1.ListBox顯示單層次數據集合,TreeView可以顯示單層次和多層次數據集合;2.通過ListBox

在實際項目應用中會存在多種類型的層次結構數據,WPF提供了良好的數據綁定機制。其中運用最頻繁的就是ListBox和TreeView控件。

一、ListBox和TreeView控件的區別
1.ListBox顯示單層次數據集合,TreeView可以顯示單層次和多層次數據集合;
2.通過ListBox在UI層面可以展示良好的數據顯示效果,對數據集合可以進行排序、分組、過濾操作;
3.TreeView顯示為一個多層次的數據集合為樹形結構,通過Templete和Style屬性同樣可以為其定義良好的數據顯示效果;

二、ListBox控件示例
1.ListBox綁定數據進行分組:
使用ListBox.GridStyle標簽,定義HeaderTemplate屬性用來定義組頭的外觀:
代碼如下:
代碼
 <ListBox ItemSource="{Binding Path=Data}">
  <ListBox.GridStyle>
      <GroupStyle.HeaderTemplate>
           <DataTemplate>
                 <Stackpanel>
                          <Image Source="xxx.jpg"/>
                           <Label Content="C:"/>
                  <Stackpanel>
           </DataTemplate>
      </GroupStyle.HeaderTemplate>
  </ListBox.GridStyle>
 ......
  </ListBox>

這樣就可以創建出類似WINDOWS 文件管理器的效果:
  

2.Listbox一些使用經驗:
/1 如果要實現類似WINDOWS的漂亮的界面效果并進行分組,需要自定義GroupStyle的樣式,否則WPF會使用內建的GroupStyle,也可以引用GroupStyle.Default靜態屬性。
/2 ListBox只能定義一層數據結構,在ListBox中的Item里再次使用ListBox,后ListBox里的ItemSource不會繼承上一層ListBox的Item源中的數據集合,如有如下數據集合:
代碼如下:
public List<Groups> groups = new List<Groups>();groups.Add(new Group);........

代碼如下:
public class Group {
        public int Id { get; set; }
        public string Name { get; set; }
        private List<Box> boxes = new List<Box>();
        public List<Box> Boxes {
            get { return boxes; }
        }
    }

Listbox的ItemSource Binding List<Groups>的數據集合,其Item中的ListBox Binding List<Box>,則Item中的ListBox是無法獲取List<Box>這個數據集合的;

三、TreeView控件示例
1.有如上數據集合,使用TreeView綁定多層數據集合:
代碼如下:
代碼
 <TreeView x:Name="maintree" FocusVisualStyle="{x:Null}" ItemsSource="{Binding Groups}">
             <TreeView.ItemContainerStyle>
                 <Style TargetType="{x:Type TreeViewItem}">
                     <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
                     <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
                     <Setter Property="FontWeight" Value="Normal" />
                     <Style.Triggers>
                         <Trigger Property="IsSelected" Value="True">
                             <Setter Property="FontWeight" Value="Bold"/>
                         </Trigger>
                     </Style.Triggers>
                 </Style>
             </TreeView.ItemContainerStyle>
             <TreeView.Resources>
                 <HierarchicalDataTemplate DataType="{x:Type m:GroupVO}" ItemsSource="{Binding Boxes}">
                     <StackPanel Orientation="Horizontal">
                         <Label Content="{Binding Path=FriendlyName}"></Label>
                         <CheckBox VerticalAlignment="Center" IsChecked="{Binding Path=IsSelected}"></CheckBox>
                     </StackPanel>                
                 </HierarchicalDataTemplate>              

                 <DataTemplate DataType="{x:Type m:BoxVO}">
                     <Grid Margin="0,5,5,10" MouseDown="maintree_MouseDown" Loaded="Grid_Loaded">
                         <Grid.RowDefinitions>
                             <RowDefinition></RowDefinition>
                         </Grid.RowDefinitions>
                         <Grid.ColumnDefinitions>
                             <ColumnDefinition Width="*"></ColumnDefinition>
                             <ColumnDefinition Width="6*"></ColumnDefinition>
                         </Grid.ColumnDefinitions>
                         <Image Source="/Resources/Images/shgbit.png" Width="50" VerticalAlignment="Top" Grid.Column="0" Grid.Row="0"></Image>
                             <Label Grid.RowSpan="2" Grid.Row="0" Grid.Column="0" Margin="5,5,0,0" Content="{Binding Path=FriendlyName}"></Label>
                 </DataTemplate>
             </TreeView.Resources>
         </TreeView>

HierarchicalDataTemplate屬性為層級數據模板,它繼承數據集合的層級結構,要表示樹的層級依賴關系必須使用HierarchicalDataTemplate。
屬性綁定數據使用TwoWay是為雙向屬性,當源數據或目標被改變是更新另一方的數據。在層次樹表示中的典型應用就是:用CheckBox進行子節點的選中和未選中的狀態傳遞。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

解析WPF綁定層次結構數據的應用詳解

解析WPF綁定層次結構數據的應用詳解:在實際項目應用中會存在多種類型的層次結構數據,WPF提供了良好的數據綁定機制。其中運用最頻繁的就是ListBox和TreeView控件。一、ListBox和TreeView控件的區別1.ListBox顯示單層次數據集合,TreeView可以顯示單層次和多層次數據集合;2.通過ListBox
推薦度:
標簽: 應用 運用 WPF
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧美黄色小视频 | 国产精品一区欧美日韩制服 | 国产成人免费高清激情明星 | 亚洲国产精品免费在线观看 | 91欧美激情一区二区三区成人 | 亚洲码欧美码一区二区三区 | 免费视频一区 | 亚洲国产成人精品91久久久 | 亚洲欧美日韩中文v在线 | 日韩国产在线播放 | 精品亚洲性xxx久久久 | 小说区 亚洲 自拍 另类 | 亚洲 欧美 中文 日韩专区 | 亚洲国产精品热久久2022 | 一级毛片在线看在线播放 | 国产小视频在线免费观看 | 全网毛片免费 | 久久久久久穴 | 91中文视频 | www.欧美色图 | 自拍 欧美 在线 综合 另类 | 国产精品麻豆a在线播放 | 亚洲欧美日韩综合在线播放 | 亚洲欧美综合网站 | 欧美v亚洲v国产v | 亚洲另类中文字幕 | 午夜在线视频一区二区三区 | 毛片日韩 | 欧美在线不卡视频 | 精品国产欧美一区二区三区成人 | 国产成人综合欧美精品久久 | 最近中文字幕无日本电影 | 国产精品一区二区国产 | 99久久精品费精品国产一区二区 | 欧美一区二区三区四区在线观看 | 亚洲风情第一页 | 精品国产免费人成在线观看 | 91一区二区三区四区五区 | 日韩欧美亚洲国产高清在线 | 九九九九热精品免费视频 | 日b毛片|