时间:2021-07-01 10:21:17 帮助过:3人阅读
<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();
}
以上部分就实现了简单的数据库的绑定,这部分也是非常重要的部分,我们在使用的时候可以按照上述步骤来进行绑定!
WPF将数据库和GridView绑定并更改GridView模板
标签: