前台代码
<dxg:GridControl Grid.Row="0" Name="grdInventory" SelectionMode="MultipleRow">
<dxg:GridControl.Columns>
<dxg:GridColumn Header="选择" HorizontalHeaderContentAlignment="Center" FieldName="select" Width="100" UnboundType="Boolean" AllowAutoFilter="False">
<dxg:GridColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,6,0" />
<dxe:CheckEdit Margin="0,0,4,0" EditValueChanged="CheckEdit_EditValueChanged" />
</StackPanel>
</DataTemplate>
</dxg:GridColumn.HeaderTemplate>
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<CheckBox HorizontalAlignment="Center" IsChecked="{Binding Data.Print,Mode=OneWay}" VerticalAlignment="Center" />
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn FieldName="ID" Header="ID">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<dxe:SpinEdit x:Name="PART_Editor" MinValue="0" MaxValue="{Binding Path=Data.maxValue}" MaskType="None"/>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn FieldName="Name" Header="Name" AllowEditing="True"/>
<dxg:GridColumn FieldName="Age" Header="Age" ReadOnly="True"/>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView Name="tblViewCycle" Width="Auto" ShowGroupPanel="False" MultiSelectMode="Row" ShowingEditor="tblViewCycle_ShowingEditor"/>
</dxg:GridControl.View>
</dxg:GridControl>
后台代码
/// <summary>
/// 全选反选事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void CheckEdit_EditValueChanged(object sender, EditValueChangedEventArgs e)
{
if (e.NewValue == null)
return;
bool isChecked = (bool)e.NewValue;
if (!isChecked)
{
for (int i = 0; i < grdInventory.VisibleRowCount; i++)
{
int rowHandle = grdInventory.GetRowHandleByVisibleIndex(i);
grdInventory.SetCellValue(rowHandle, "Print", false);
grdInventory.RefreshRow(rowHandle);
}
grdInventory.SelectedItem = null;
}
else
{
for (int i = 0; i < grdInventory.VisibleRowCount; i++)
{
int rowHandle = grdInventory.GetRowHandleByVisibleIndex(i);
grdInventory.SetCellValue(rowHandle, "Print", true);
grdInventory.RefreshRow(rowHandle);
//new
grdInventory.SelectItem(rowHandle);
//new
}
}
}