<Window x:Class="wpfDemo.DataBind.Test"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dg="http://schemas.microsoft.com/wpf/2008/toolkit"
Title="Test" Height="300" Width="300">
<Grid>
<dg:DataGrid x:Name="dg" CanUserAddRows="False" AutoGenerateColumns="False">
<dg:DataGrid.Columns>
<dg:DataGridCheckBoxColumn Binding="{Binding Path=IsSelected,RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type dg:DataGridRow}}}">
<dg:DataGridCheckBoxColumn.HeaderTemplate>
<DataTemplate>
<CheckBox x:Name="ckbSelectedAll" Checked="ckbSelectedAll_Click" Unchecked="ckbSelectedAll_Unchecked"></CheckBox>
</DataTemplate>
</dg:DataGridCheckBoxColumn.HeaderTemplate>
</dg:DataGridCheckBoxColumn>
<dg:DataGridTextColumn Header="编号" Binding="{Binding Id}"></dg:DataGridTextColumn>
<dg:DataGridTextColumn Header="姓名" Binding="{Binding Name}"></dg:DataGridTextColumn>
</dg:DataGrid.Columns>
</dg:DataGrid>
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace wpfDemo.DataBind
{
/// <summary>
/// Test.xaml 的交互逻辑
/// </summary>
public partial class Test : Window
{
public Test()
{
InitializeComponent();
this.dg.ItemsSource = getSource();
}
private void ckbSelectedAll_Click(object sender, RoutedEventArgs e)
{
this.dg.SelectAll();
}
private List<A> getSource() {
List<A> list = new List<A>();
for (int i = 0; i < 10; i++) {
A a = new A();
a.Id = i;
a.Name = "admin" + i;
list.Add(a);
}
return list;
}
private void ckbSelectedAll_Unchecked(object sender, RoutedEventArgs e)
{
this.dg.UnselectAll();
}
}
public class A {
private int id;
public int Id
{
get { return id; }
set { id = value; }
}
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
}
}