自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解WPF 4 DataGrid控件的基本功能

開發(fā) 后端
本文將為大家介紹WPF 4中DataGrid的相關(guān)功能,通過DataGrid我們可以在行與列之間顯示各種數(shù)據(jù)。

給大家講到WPF,我們就不得不提到WinForm,51CTO之前也報(bào)導(dǎo)過《WPF與WinForm對(duì)比談 多線程編程優(yōu)化是關(guān)鍵》的技術(shù)文章,對(duì)于他們之間的優(yōu)劣有了更深刻的認(rèn)識(shí)。而今天我們要講到的是WPF 4中的DataGrid空間。我們也誠(chéng)摯向您推薦《讓你的代碼“炫”起來(lái)——WPF開發(fā)教程》。

提到DataGrid 不管是網(wǎng)頁(yè)還是應(yīng)用程序開發(fā)都會(huì)頻繁使用。通過它我們可以靈活的在行與列間顯示各種數(shù)據(jù)。本篇將詳細(xì)介紹WPF 4 中DataGrid 的相關(guān)功能。

自定義列

默認(rèn)情況下,當(dāng)我們?yōu)镈ataGrid 控件設(shè)置ItemSource 屬性后,DataGrid 會(huì)根據(jù)數(shù)據(jù)類型自動(dòng)生成相應(yīng)的列,下表列出DataGrid 支持的四種列及其數(shù)據(jù)類型。

Column

在創(chuàng)建DataGrid 時(shí)可以通過AutoGenerateColumns 屬性設(shè)置列是否自動(dòng)生成,從而加入自定義列。如果DataGrid 中同時(shí)包含“自動(dòng)生成列”與“用戶自定義列”,則首先創(chuàng)建“用戶自定義列”。下面代碼實(shí)例中分別創(chuàng)建這四種列:

  1. <Window x:Class="WPF4ControlTest.MainWindow" 
  2.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  3.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  4.         xmlns:local="clr-namespace:WPF4ControlTest" 
  5.         xmlns:assembly="clr-namespace:System;assembly=mscorlib" 
  6.         Title="MainWindow" Height="200" Width="500"> 
  7.     <Window.Resources> 
  8.         <ObjectDataProvider x:Key="sexEnum" MethodName="GetValues"   
  9.                             ObjectType="{x:Type assembly:Enum}"> 
  10.             <ObjectDataProvider.MethodParameters> 
  11.                 <x:Type Type="local:SexOpt"/> 
  12.             </ObjectDataProvider.MethodParameters> 
  13.         </ObjectDataProvider> 
  14.     </Window.Resources> 
  15.     <Grid> 
  16.         <DataGrid x:Name="dataGrid" ItemsSource="{Binding}" AutoGenerateColumns="False"> 
  17.             <DataGrid.Columns> 
  18.                 <DataGridTextColumn Header="Name" Width="80" Binding="{Binding Name}"/> 
  19.                 <DataGridTextColumn Header="Age" Width="50" Binding="{Binding Age}"/> 
  20.                 <DataGridComboBoxColumn Width="80" Header="Sex"   
  21.                                         SelectedItemBinding="{Binding Sex}"   
  22.                               ItemsSource="{Binding Source={StaticResource sexEnum}}"/> 
  23.                 <DataGridCheckBoxColumn Header="Pass Exam?" Width="100"   
  24.                                         Binding="{Binding Pass}"/> 
  25.                 <DataGridHyperlinkColumn Header="Email" Width="150"   
  26.                                          Binding="{Binding Email}"/> 
  27.             </DataGrid.Columns> 
  28.         </DataGrid> 
  29.     </Grid> 
  30. </Window> 

其中每列都包含各自的數(shù)值類型,在C# 中創(chuàng)建Member 類及SexOpt 枚舉,并將memberData 數(shù)據(jù)綁定到DataGrid:

  1. using System;  
  2. using System.Windows;  
  3. using System.Collections.ObjectModel;  
  4.  
  5. namespace WPF4ControlTest  
  6. {  
  7.     /// <summary>  
  8.     /// Interaction logic for MainWindow.xaml  
  9.     /// </summary>  
  10.     public partial class MainWindow : Window  
  11.     {  
  12.         public MainWindow()  
  13.         {  
  14.             InitializeComponent();  
  15. ObservableCollection<Member> memberData = new ObservableCollection<Member>();  
  16.             memberData.Add(new Member()  
  17.             {  
  18.                 Name = "Joe", Age = "23", Sex = SexOpt.Male,  
  19.                 Pass = true, Email = new Uri("mailto:Joe@school.com")  
  20.             });  
  21.             memberData.Add(new Member()  
  22.             {  
  23.                 Name = "Mike", Age = "20",  
  24.                 Sex = SexOpt.Male, Pass = false,  
  25.                 Email = new Uri("mailto:Mike@school.com")  
  26.             });  
  27.             memberData.Add(new Member()  
  28.             {  
  29.                 Name = "Lucy", Age = "25",  
  30.                 Sex = SexOpt.Female, Pass = true,  
  31.                 Email = new Uri("mailto:Lucy@school.com")  
  32.             });  
  33.             dataGrid.DataContext = memberData;  
  34.         }  
  35.     }  
  36.  
  37.     public enum SexOpt { Male, Female };  
  38.  
  39.     public class Member  
  40.     {  
  41.         public string Name { getset; }  
  42.         public string Age { getset; }  
  43.         public SexOpt Sex { getset; }  
  44.         public bool Pass { getset; }  
  45.         public Uri Email { getset; }  
  46.     }  

這樣我們就可以通過自定義列的方式創(chuàng)建出DataGrid:

主窗口

選擇模式

默認(rèn)情況下,DataGrid 的選擇模式為“全行選擇”,并且可以同時(shí)選擇多行(如下圖所示),我們可以通過SelectionMode 和SelectionUnit 屬性來(lái)修改DataGrid 的選擇模式。

DefaultMode

SelectionUnit:包含Cell、FullRow 和CellOrRowHeader 三種單元選擇模式。 

 ◆Cell:選擇單元格; 

◆FullRow:選擇全行; 

 ◆CellOrRowHeader:可選擇單元格,也可以通過點(diǎn)擊行首選擇全行;

SelectionMode:分為Extended 和Single 兩種模式。 

◆Extended:選擇多個(gè)單元(單元格或全行,由SelectionUnit 定義); 

◆Single:選擇唯一單元(單元格或全行,由SelectionUnit 定義); 

  1. <DataGrid x:Name="dataGrid" ItemsSource="{Binding}" AutoGenerateColumns="False" 
  2.           SelectionUnit="Cell" SelectionMode="Extended">… … 
 

設(shè)置SelectionUnit 和SelectionMode 后的實(shí)例效果:

ModeSample

編輯

默認(rèn)情況下,我們可以直接在DataGrid 中編輯數(shù)據(jù)(下表為相關(guān)的編輯命令),當(dāng)然也可以通過IsReadOnly 屬性將DataGrid 設(shè)置為只讀方式。

  1. <DataGrid x:Name="dataGrid" ItemsSource="{Binding}" AutoGenerateColumns="False" 
  2.           SelectionUnit="Cell" SelectionMode="Extended" IsReadOnly="True">… … 
 

Edit

原文標(biāo)題:WPF 4 DataGrid 控件(基本功能篇)

鏈接:http://www.cnblogs.com/gnielee/archive/2010/04/16/wpf4-datagrid-control-basic.html

【編輯推薦】

  1. Visual Studio 2010截圖曝光 以WPF開發(fā)UI
  2. 為WPF項(xiàng)目創(chuàng)建單元測(cè)試
  3. 詳解Silverlight和WPF互相擴(kuò)展
  4. 教你如何理解WPF中的Template類
  5. 詳談WPF開發(fā)中的數(shù)據(jù)虛擬化
責(zé)任編輯:彭凡 來(lái)源: 博客園
相關(guān)推薦

2010-06-28 21:33:17

eMule協(xié)議

2012-10-22 16:47:45

IBMdw

2020-10-19 10:16:02

AWSDynamoDB功能

2019-04-16 08:21:46

2010-01-05 15:27:04

.NET Framew

2010-03-02 17:43:31

WCF框架處理流程

2019-09-16 08:22:12

特權(quán)訪問管理PAM網(wǎng)絡(luò)安全

2021-06-03 09:20:33

微服務(wù)架構(gòu)代碼

2015-07-07 14:17:56

物聯(lián)網(wǎng)操作系統(tǒng)

2023-05-11 08:59:43

Nginx配置服務(wù)器

2010-01-20 18:20:50

2010-01-04 10:47:08

智能交換機(jī)

2009-12-03 09:08:21

路由器基本功能

2017-01-15 17:15:27

Java基本功能

2011-04-29 14:04:56

一體機(jī)

2009-12-03 14:10:22

路由器基本功能

2009-12-08 13:58:12

Linux操作系統(tǒng)垃圾郵件

2010-02-03 09:59:18

2015-11-09 10:34:54

iOS 9.1 iPhone

2009-11-24 17:35:59

路由器基本功能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)