DataGrid控件是顯示數據的控件,從一個對象集合獲取信息並在具有行和單元格的網格中顯示信息。每行和一個單獨的對象相對應,並且每列和該對象中的一個屬性相對應。
DataGrid控件添加了許多在WPF中處理數據所需要的技能。其基於列的模型提供了顯著的格式化靈活性,其選擇模型允許選擇一行,多行或一些單元格的組合,其編輯支持非常強大,可以使用DataGrid控件作為簡單數據和復雜數據的統一數據編輯器。
上述所講都是介紹,下面我將自己項目中使用到的DataGrid的功能與大家分享,也希望大家可以點出其中的不足之處。
<DataGrid x:Name="grid1" AutoGenerateColumns="True"></DataGrid>
- DataGrid數據綁定
- 將 AutoGenerateColumns設置為"True",自動生成列,通過設置ItemSource屬性填充DataGrid: grid1.ItemsSource = Prolist;效果如下圖:
- 使用自動生成的列不能很好的控制列的顯示,將 AutoGenerateColumns設置為"False",這樣我們可以定義列的顯示,也是我們平常用的最多的。下面我分別綁定五種DataGrid支持的類型的列:
<DataGrid.Columns> <DataGridCheckBoxColumn Header="選擇" Width="50"></DataGridCheckBoxColumn> <DataGridTextColumn Header="Product Name" Width="100" Binding="{ Binding Path=ProName}"> </DataGridTextColumn> <DataGridComboBoxColumn Header="Product Category" Width="115" SelectedItemBinding="{Binding Path=ProCategory}" ItemsSource="{Binding Source={StaticResource keyCategory}}" ></DataGridComboBoxColumn> <!--Combox綁定,獲取上面定義的資源keyCategory.從后台獲取類別的數據--> <DataGridHyperlinkColumn Header="Product Link" Width="100" Binding="{Binding Path=ProLink}"></DataGridHyperlinkColumn> <DataGridTemplateColumn Header="Product Image" Width="100"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <Image Source="{Binding Path=ProImage }" Width="100" Height="70"></Image> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns>
后台設置:
public enum ProductCategory { Travel,Deception,Tools,General }
界面如下:
- 將 AutoGenerateColumns設置為"True",自動生成列,通過設置ItemSource屬性填充DataGrid: grid1.ItemsSource = Prolist;效果如下圖: