WPF之 DataGrid數據綁定


  DataGrid控件是顯示數據的控件,從一個對象集合獲取信息並在具有行和單元格的網格中顯示信息。每行和一個單獨的對象相對應,並且每列和該對象中的一個屬性相對應。

  DataGrid控件添加了許多在WPF中處理數據所需要的技能。其基於列的模型提供了顯著的格式化靈活性,其選擇模型允許選擇一行,多行或一些單元格的組合,其編輯支持非常強大,可以使用DataGrid控件作為簡單數據和復雜數據的統一數據編輯器。

  上述所講都是介紹,下面我將自己項目中使用到的DataGrid的功能與大家分享,也希望大家可以點出其中的不足之處。

 <DataGrid x:Name="grid1" AutoGenerateColumns="True"></DataGrid>
    1. DataGrid數據綁定
      1.  將 AutoGenerateColumns設置為"True",自動生成列,通過設置ItemSource屬性填充DataGrid: grid1.ItemsSource = Prolist;效果如下圖:
      2. 使用自動生成的列不能很好的控制列的顯示,將 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>
        View Code

        后台設置:

         public enum ProductCategory
            {
                Travel,Deception,Tools,General
            }
        View Code

        界面如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM