WPF入門教程系列二十一——DataGrid示例(一)

      前面咱們學習了ListView控件的使用示例,今天咱們來學習DataGrid的有關知識。提到DataGrid 無論是Asp.Net中的網頁開發仍是WinForm應用程序開發都會頻繁使用。經過它咱們能夠靈活的在行與列間顯示各類數據。本篇將學習WPF中的DataGrid 相關功能。工具

      首先,先介紹一下DataGrid中有哪些列的類型。學習

DataGrid列的類型spa

   默認狀況下,當咱們爲DataGrid 控件設置ItemSource 屬性後,DataGrid 會根據數據類型自動生成相應的列,下表列出DataGrid 支持的四種列及其數據類型。3d

下表列出了 DataGrid 提供的四個列類型。code

列類型orm

顯示數據xml

數據類型blog

DataGridHyperlinkColumnip

使用顯示 URI 數據。ci

URI

DataGridComboBoxColumn

使用顯示枚舉數據與其餘須要下拉框選擇的數據。

Enum,String

DataGridTextColumn

使用顯示文本

String

DataGridCheckBoxColumn

使用顯示布爾數據

Bool

 

 

 

 

 

 

  在建立DataGrid 時能夠經過AutoGenerateColumns 屬性設置列是否自動生成,從而加入自定義列。若是DataGrid 中同時包含「自動生成列」與「用戶自定義列」,則首先建立「用戶自定義列」。以下圖。

 

其次:咱們來作一個示例,學習如何使用DataGrid。

製作DataGrid示例的界面

1)按照上一篇文章中所寫的步驟,使用Visual Studio 2013建立一個WindowGrid界面。以下圖。

 

2)在Visual studio 2013中的工具箱中,找到DataGrid控件,而後雙擊。把DataGrid控件添加窗體界面中。以下圖1,圖2。注意,圖2中的紅框所標示的那個小框,就是DataGrid控件,是否是與WindowForm中的DataGrid有很大的不一樣呀。

 

圖1

 

圖2

3)給DataGrid添加列。先鼠標左鍵選中,窗體界面中的小方塊,而後點擊Visual Studio 2013最右邊的「屬性」標籤,而後Visual Studio 2013會彈出「屬性」編輯窗口。以下圖。

 

4) 在上圖中使用鼠標左鍵點擊Columns那一行的按鈕。如上圖中的紅色框,而後會彈出一個對話框,以下圖。

 

4)在上圖中,選擇相應的列的類型,而後點擊「添加」按鈕,添加列。以下圖。

 

5) 根據我這個示例的實際狀況,我根據須要我添加了5列DataGridTextColumn,和一列DataGridComboBoxColumn。添加完成以後,以下圖。看起來與WindowForm中的DataGrid很像了吧。

 

6) 下面是所有完成以後的實際的XAML代碼。

 

<Window x:Class="WpfApp1.WindowGrid"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        Title="Grid示例" Height="400" Width="600">

    <Grid>

        <Grid.RowDefinitions>

            <RowDefinition Height="*"/>

            <RowDefinition Height="auto"/>

            <RowDefinition Height="22"/>

        </Grid.RowDefinitions>

        <DataGrid x:Name="gridCitys"  Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" AutoGenerateColumns="False">

            <DataGrid.Columns>

 

                <DataGridTextColumn Binding="{Binding CityID}" ClipboardContentBinding="{x:Null}" Header="CityID"/>

                <DataGridTextColumn Binding="{Binding CityName}" ClipboardContentBinding="{x:Null}" Header="CityName"/>

                <DataGridTextColumn Binding="{Binding ZipCode}" ClipboardContentBinding="{x:Null}" Header="ZipCode"/>

                <DataGridComboBoxColumn x:Name="cboProvince" ClipboardContentBinding="{x:Null}" Header="ProvinceID" SelectedValuePath="ProvinceID" SelectedValueBinding="{Binding Path=ProvinceID,UpdateSourceTrigger=PropertyChanged}"  DisplayMemberPath="ProvinceName" SelectedItemBinding="{x:Null}" >

 

                </DataGridComboBoxColumn>

                <DataGridTextColumn Binding="{Binding DateCreated}" ClipboardContentBinding="{x:Null}" Header="DateCreated"/>

                <DataGridTextColumn Binding="{Binding DateUpdated}" ClipboardContentBinding="{x:Null}" Header="DateUpdated"/>

 

            </DataGrid.Columns>

        </DataGrid>

        <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right" >

            <TextBlock Text="顯示信息" TextAlignment="Center"  />

            <TextBox Name="txtMsg" IsReadOnly="True" Text="" Width="320" TextAlignment="Center" />           

           

        </StackPanel>

        <WrapPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Right">

            <Button  HorizontalAlignment="Right"  Name="btnRefresh" Height="22" VerticalAlignment="Top" Width="65" Click="btnRefresh_Click">刷新</Button>

            <Button  HorizontalAlignment="Right"  Name="btnUpdate" Height="22" VerticalAlignment="Top" Width="65" Click="btnUpdate_Click"  >更新</Button>

        </WrapPanel>

    </Grid>

</Window>
相關文章
相關標籤/搜索