WPF将数据库和GridView绑定并更改GridView模板
2015-06-26 17:46
253 查看
首先来看一下如何使用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(); }
以上部分就实现了简单的数据库的绑定,这部分也是非常重要的部分,我们在使用的时候可以按照上述步骤来进行绑定!
相关文章推荐
- Mac OS X (Intel) 上安装 Oracle 10g
- [SQL入门级] 第一天 SQL初步
- php中memcache的配置与使用
- mac os 下安装oracle 客户端
- 查看SqlServer的内存使用情况
- ORACLE数据库中查找用户、角色、权限的SQL汇总(转发)
- MySQL锁定状态查看命令
- 【整理】MySQL引擎
- 安装Memcache的PHP扩展
- MySQL事务隔离级别详解
- spring+redis整合入门
- SQLServer2008把数据导出成可执行的sql脚本
- SQL Server中字符串函数LEN 和 DATALENGTH辨析
- MyBatis单一和批量操作数据库SQL
- [MyBatis]获取数据库连接、批量执行SQL语句
- SQL数据库——计算列
- sql server 常见错误代码15000 - 15999含义解析
- Oracle基础学习登陆SQLPLUS(一)
- Sql入门------数据库事务
- yum安装mysql后没有mysqld