<Window x:Class="WpfChart.Window4" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window4" Height="550" Width="955" xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"> <Grid> <dxg:GridControl AutoGenerateColumns="AddNew" EnableSmartColumnsGeneration="True" HorizontalAlignment="Left" Margin="10,59,0,0" Name="gridControl1" VerticalAlignment="Top" Height="445" Width="738" > <dxg:GridControl.Columns > <dxg:GridColumn FieldName="IsValid" Header="选中" VisibleIndex="0" AllowEditing="False" AllowSorting="False" > <dxg:GridColumn.CellTemplate> <DataTemplate> <CheckBox IsChecked="{Binding Data.IsValid}" HorizontalAlignment="Center" VerticalAlignment="Center" > </CheckBox> </DataTemplate> </dxg:GridColumn.CellTemplate> </dxg:GridColumn> <dxg:GridColumn FieldName="ID" VisibleIndex="1" /> <dxg:GridColumn FieldName="Name" VisibleIndex="2" /> <dxg:GridColumn FieldName="StartDateTime" VisibleIndex="3" /> <dxg:GridColumn FieldName="EndDateTime" VisibleIndex="4" /> </dxg:GridControl.Columns> <dxg:GridControl.View> <dxg:TableView ShowGroupPanel="False" AllowPerPixelScrolling="True" Name="tableView1" ShowTotalSummary="True" AllowFixedGroups="True" AllowColumnFiltering="False" AllowSorting="False" ShowFixedTotalSummary="True" /> </dxg:GridControl.View> </dxg:GridControl> <Button Content="全选" Height="23" HorizontalAlignment="Left" Margin="16,28,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" /> <Button Content="选中行信息" Height="23" HorizontalAlignment="Left" Margin="110,28,0,0" Name="button2" VerticalAlignment="Top" Width="75" Click="button2_Click" /> </Grid> </Window>
namespace WpfChart { /// <summary> /// Window4.xaml 的交互逻辑 /// </summary> public partial class Window4 : Window { List<Project> data = null; public Window4() { InitializeComponent(); data = new List<Project>(); data.Add(new Project(1, "Apple", DateTime.Now, DateTime.Now, true)); data.Add(new Project(2, "banana", DateTime.Now, DateTime.Now, false)); data.Add(new Project(3, "orange", DateTime.Now, DateTime.Now, true)); data.Add(new Project(4, "peach", DateTime.Now, DateTime.Now, false)); data.Add(new Project(5, "pineapple", DateTime.Now, DateTime.Now, true)); gridControl1.ItemsSource = data; DataContext = data; } /// <summary> /// 默认全选为false /// </summary> bool check = false; /// <summary> /// 全选及反选 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, RoutedEventArgs e) { bool newSelect = !check; check = !check; for (int i = 0; i < data.ToList().Count; i++) { int rowHandle = this.gridControl1.GetRowHandleByListIndex(i); gridControl1.SetCellValue(rowHandle, "IsValid", newSelect); } } /// <summary> /// 获取选中行的信息 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button2_Click(object sender, RoutedEventArgs e) { string name = ""; for (int i = 0; i < data.ToList().Count; i++) { int rowHandle = this.gridControl1.GetRowHandleByListIndex(i); object wholeRowObject = gridControl1.GetRow(rowHandle); object rowCheck = gridControl1.GetCellValue(rowHandle, "IsValid"); bool ifCheck = (bool)rowCheck; if (ifCheck) { object rowname = gridControl1.GetCellValue(rowHandle, "Name"); name += rowname.ToString() + ","; } } MessageBox.Show(name); } } public class Project { static int num = 0; public int ID { get; set; } public string Name { get; set; } public DateTime StartDateTime { get; set; } public DateTime EndDateTime { get; set; } public bool IsValid { get; set; } public Project(int id, string name, DateTime startDateTime, DateTime endDateTime ,bool isvalid) { ID = id; Name = name; StartDateTime = startDateTime; EndDateTime = endDateTime; IsValid = isvalid; } } }