wpf datagrid 加入checkbox
2011-07-08 17:45
357 查看
直接代码,不废话
<my:DataGrid AutoGenerateColumns="False" IsReadOnly="True" Margin="271,35,12,40" Name="dataGrid1" xmlns:my="http://schemas.microsoft.com/wpf/2008/toolkit" Grid.Row="1">
<my:DataGrid.Columns>
<my:DataGridTemplateColumn Header="全选/全不选" Width="110">
<my:DataGridTemplateColumn.HeaderStyle>
<Style TargetType="my:DataGridColumnHeader">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="White" Offset="0" />
<GradientStop Color="LightPink" Offset="0.5" />
<GradientStop Color="White" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="Black" />
<Setter Property="FontSize" Value="14" />
</Style>
</my:DataGridTemplateColumn.HeaderStyle>
<my:DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<CheckBox Checked="ckbSelectedAll_Checked" Margin="10,0" Name="ckbSelectedAll" Unchecked="ckbSelectedAll_Unchecked">全选/全不选</CheckBox>
</DataTemplate>
</my:DataGridTemplateColumn.HeaderTemplate>
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox HorizontalAlignment="Center" IsChecked="{Binding IsChecked, Mode=TwoWay}" VerticalAlignment="Center" />
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
</my:DataGridTemplateColumn>
<my:DataGridTextColumn Binding="{Binding xx}" Header="xx">
<my:DataGridTextColumn.HeaderStyle>
<Style TargetType="my:DataGridColumnHeader">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="White" Offset="0" />
<GradientStop Color="LightGreen" Offset="0.5" />
<GradientStop Color="White" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="Black" />
<Setter Property="FontSize" Value="14" />
</Style>
</my:DataGridTextColumn.HeaderStyle>
</my:DataGridTextColumn>
<my:DataGridTextColumn Binding="{Binding xx}" Header="xx">
<my:DataGridTextColumn.HeaderStyle>
<Style TargetType="my:DataGridColumnHeader">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="White" Offset="0" />
<GradientStop Color="Yellow" Offset="0.5" />
<GradientStop Color="White" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="Black" />
<Setter Property="FontSize" Value="14" />
</Style>
</my:DataGridTextColumn.HeaderStyle>
</my:DataGridTextColumn>
</my:DataGrid.Columns>
</my:DataGrid>
private void ckbSelectedAll_Checked(object sender, RoutedEventArgs e)
{
foreach (DataRow row in dt.Rows)
{
row["IsChecked"] = true;
}
}
private void ckbSelectedAll_Unchecked(object sender, RoutedEventArgs e)
{
foreach (DataRow row in dt.Rows)
{
row["IsChecked"] = false;
}
}
当然,华丽的效果,还是要配合美工实现,可是我目前只有一个人孤军奋战,而且以前没接触过c#,只花了三四天时间看了下c#和wpf,写的很简陋,不要见笑。我还在继续学习中。(之所以只花了三四天时间看了下,是因为我更喜欢实际动手做一下。我知道,我从来不擅长于考试、理论之类的东西,但我也十分的清楚,我能理解并将其付之于实践,这就是我的强项。)
<my:DataGrid AutoGenerateColumns="False" IsReadOnly="True" Margin="271,35,12,40" Name="dataGrid1" xmlns:my="http://schemas.microsoft.com/wpf/2008/toolkit" Grid.Row="1">
<my:DataGrid.Columns>
<my:DataGridTemplateColumn Header="全选/全不选" Width="110">
<my:DataGridTemplateColumn.HeaderStyle>
<Style TargetType="my:DataGridColumnHeader">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="White" Offset="0" />
<GradientStop Color="LightPink" Offset="0.5" />
<GradientStop Color="White" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="Black" />
<Setter Property="FontSize" Value="14" />
</Style>
</my:DataGridTemplateColumn.HeaderStyle>
<my:DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<CheckBox Checked="ckbSelectedAll_Checked" Margin="10,0" Name="ckbSelectedAll" Unchecked="ckbSelectedAll_Unchecked">全选/全不选</CheckBox>
</DataTemplate>
</my:DataGridTemplateColumn.HeaderTemplate>
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox HorizontalAlignment="Center" IsChecked="{Binding IsChecked, Mode=TwoWay}" VerticalAlignment="Center" />
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
</my:DataGridTemplateColumn>
<my:DataGridTextColumn Binding="{Binding xx}" Header="xx">
<my:DataGridTextColumn.HeaderStyle>
<Style TargetType="my:DataGridColumnHeader">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="White" Offset="0" />
<GradientStop Color="LightGreen" Offset="0.5" />
<GradientStop Color="White" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="Black" />
<Setter Property="FontSize" Value="14" />
</Style>
</my:DataGridTextColumn.HeaderStyle>
</my:DataGridTextColumn>
<my:DataGridTextColumn Binding="{Binding xx}" Header="xx">
<my:DataGridTextColumn.HeaderStyle>
<Style TargetType="my:DataGridColumnHeader">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="White" Offset="0" />
<GradientStop Color="Yellow" Offset="0.5" />
<GradientStop Color="White" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="Black" />
<Setter Property="FontSize" Value="14" />
</Style>
</my:DataGridTextColumn.HeaderStyle>
</my:DataGridTextColumn>
</my:DataGrid.Columns>
</my:DataGrid>
private void ckbSelectedAll_Checked(object sender, RoutedEventArgs e)
{
foreach (DataRow row in dt.Rows)
{
row["IsChecked"] = true;
}
}
private void ckbSelectedAll_Unchecked(object sender, RoutedEventArgs e)
{
foreach (DataRow row in dt.Rows)
{
row["IsChecked"] = false;
}
}
当然,华丽的效果,还是要配合美工实现,可是我目前只有一个人孤军奋战,而且以前没接触过c#,只花了三四天时间看了下c#和wpf,写的很简陋,不要见笑。我还在继续学习中。(之所以只花了三四天时间看了下,是因为我更喜欢实际动手做一下。我知道,我从来不擅长于考试、理论之类的东西,但我也十分的清楚,我能理解并将其付之于实践,这就是我的强项。)
相关文章推荐
- Flex中DataGrid实现列(包括头部)中加入CheckBox全选功能
- WPF中DataGrid中的DataGridCheckBoxColumn用法(全选,全否,反选)
- wpf中为DataGrid添加checkbox支持多选全选
- DataGrid中加入CheckBox,同时只能单选(转自CSDN)
- Flex中DataGrid实现列(包括头部)中加入CheckBox全选功能 几种实现方法
- DataGrid中加入CheckBox,并实现单选
- DataGrid中加入CheckBox,并实现单选 选择自 listhome 的 Blog
- wpf中为DataGrid添加checkbox支持多选全选
- DataGrid中加入CheckBox,并实现单选
- WPF DataGridCheckBoxColumn列不更新问题方案
- 在DataGrid中加入了一列checkbox用来控制删除多行
- wpf中为DataGrid添加checkbox支持多选全选
- DataGrid中加入CheckBox,并实现单选 listhome [原作]
- flash CS3 在Datagrid(表格组件)中加入Button(按钮)、checkbox(复选框)、combobox下拉框、combotree(树状下拉框)等组件
- DataGrid中加入CheckBox实现单选
- Wpf Datagrid 设置了模板 checkbox 如何一次选中,单击就选中。默认是要双击才得
- WPF-DataGrid中CheckBox实现全选与非全选
- WPF DataGrid表头Checkbox 全选与全反选
- WPF-DataGrid表头CheckBox反选
- DataGrid中加入CheckBox,并实现单选(C#,Asp.Net)