您的位置:首页 > 其它

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,写的很简陋,不要见笑。我还在继续学习中。(之所以只花了三四天时间看了下,是因为我更喜欢实际动手做一下。我知道,我从来不擅长于考试、理论之类的东西,但我也十分的清楚,我能理解并将其付之于实践,这就是我的强项。)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: