zoukankan      html  css  js  c++  java
  • WPF将数据库和GridView绑定并更改GridView模板

     首先来看一下如何使用GridView,在前台的话代码如下:这里仅仅举出一个例子,GridView是作为子项嵌套在ListView中的,这里的数据源是通过绑定的方式来绑定到GridView中的。

    <ListView Margin="15,115,15,48" Name="lstProducts" ItemsSource="{Binding}">
       <ListView.View>
          <GridView>
            <GridViewColumn Header="ProductID"
                 DisplayMemberBinding="{Binding Path=ProductID}"></GridViewColumn>
              <GridViewColumn Header="Product Name"
                   DisplayMemberBinding="{Binding Path=ProductName}"></GridViewColumn>
              <GridViewColumn Header="SupplierID"
                   DisplayMemberBinding="{Binding Path=SupplierID}"></GridViewColumn>
              <GridViewColumn Header="CategoryID"
                   DisplayMemberBinding="{Binding Path=CategoryID}"></GridViewColumn>
              <GridViewColumn Header="Qty. Per Unit"
                   DisplayMemberBinding="{Binding Path=QuantityPerUnit}"></GridViewColumn>
              <GridViewColumn Header="Unit Price"
                   DisplayMemberBinding="{Binding Path=UnitPrice}"></GridViewColumn>
              <GridViewColumn Header="In Stock"
                   DisplayMemberBinding="{Binding Path=UnitInStock}"></GridViewColumn>
            </GridView>
        </ListView.View>
    </ListView>  
    这里有一些关键字,Header和DisplayMemberBinding,在前台中我们可以通过修改模板的方式来修改GridView的样式,首先我们可以修改GridView的列头的样式,我们可以改变背景,字体大小,高度等一系列参数。 
    <GridView.ColumnHeaderTemplate>
         <DataTemplate>
              <TextBlock FontFamily="Microsoft YaHei" FontSize="35" Foreground="White" Background="#333" Width="265" HorizontalAlignment="Center" TextAlignment="Center">
                <TextBlock.Text>
                      <Binding/>
                </TextBlock.Text>
            </TextBlock>
        </DataTemplate>
    </GridView.ColumnHeaderTemplate>  
    另外还有一个重要的模板,就是CellTemplate,我们需要注意GridViewColumn用了DisplayMemberBinding 使得CellTemplate失效,所以如果需要自定义CellTemplate,那么一定要去掉 DisplayMemberBinding。 下面是一个具体的例子。
    首先在资源中定义模板,
    <DataTemplate x:Key="GridViewCellTemplate">
          <TextBlock FontFamily="Microsoft YaHei" Height="60" FontSize="35" Foreground="White" Background="Gray" Width="265" HorizontalAlignment="Center" TextAlignment="Center">
              <TextBlock.Text>
                    <Binding Path="DisplayName" Mode="TwoWay"/>
              </TextBlock.Text>
          </TextBlock>
    </DataTemplate>

    然后在具体的列中引用,<GridViewColumn Header="投诉人"   Width="Auto" CellTemplate="{StaticResource GridViewCellTemplate}" ></GridViewColumn>这样就可以实现对每一列的模板替换。

    还有很重要的一部分就是在后台来讲数据库绑定到前台中,在xaml中我们使用了ItemsSource="{Binding}",那么在后台的代码中:

    /// <summary>
    /// 从数据库中获取数据并绑定到GridView上
    /// </summary>
    private void GetDataFromDataBase()
    {
    string connectStr = "Server=127.0.0.1;Database=test;Uid=root;Pwd=12345;Port=3306;CharSet=gbk;allow zero datetime=true";
    string cmdStr = "select * from camerainfo order by pID desc limit 100";
    DataBaseMySqlHander sql = new DataBaseMySqlHander(connectStr);
    DataTable dt = sql.GetDataTable(cmdStr);
    if (dt == null) return;
    //创建一个DataTable的副本
    DataTable tempTable = new DataTable();
    tempTable = dt.Clone();//克隆 System.Data.DataTable 的结构
    //包括所有 System.Data.DataTable 架构和约束。
    if (tempTable != null && dt.Rows.Count>0)
    {
         for (int i = 0; i < dt.Rows.Count; i++)
           {
               tempTable.ImportRow(dt.Rows[i]); 
           }
    }
    //为ListView绑定数据源
    this.dv= tempTable.DefaultView; 
    tempTable.Dispose();
    }  
    以上部分就实现了简单的数据库的绑定,这部分也是非常重要的部分,我们在使用的时候可以按照上述步骤来进行绑定!
  • 相关阅读:
    ★《唐琅探案》后记【2】
    ★《唐琅探案》后记【2】
    《OD学hadoop》第一周0625 LINUX作业一:Linux系统基本命令(一)
    《OD学hadoop》第一周0626
    《OD学hadoop》mac下使用VMware Fusion安装centos
    《OD学hadoop》第一周0625
    《OD学hadoop》第二阶段Java编程基础
    《OD学hadoop》Linux基础
    《OD学hadoop》Hadoop前置
    《OD学算法》常用算法集合
  • 原文地址:https://www.cnblogs.com/seekdream/p/4602902.html
Copyright © 2011-2022 走看看