我有一个带有一些列的 WPF 网格控件。我还有一个带有复选框的 checkedit 列。
我希望完成的是当用户在网格控件中选择一行(单击一行)时,我希望复选框自动被选中。
然后当用户单击不同的行时,新选择的行中的复选框将变为选中状态,而先前选择的行中的复选框将变为未选中状态。
复选框被禁用,因此用户不需要单击实际的复选框本身,而是单击同一行中的任何位置。
基本上,复选框是作为一个指示器,向用户显示他们点击了哪一行,这样他们就知道当他们点击删除按钮时他们有正确的记录。
希望这是足够的描述性。
谢谢
编辑:对不起所有..我使用的是 DevExpress 数据网格,它似乎不允许以下答案中的属性..
<!-- DX Grid with charges -->
<dxg:GridControl Grid.Row="1" Grid.ColumnSpan="7" FocusableChanged="FinanceOperationsGrid_FocusableChanged" Grid.RowSpan="6" DataSource="{Binding FinanceOperations}" x:Name="FinanceOperationsGrid">
<dxg:GridControl.Columns>
<dxg:GridColumn Width="20" AllowEditing="False" ShowInColumnChooser="False" AllowAutoFilter="False" />
<dxg:GridColumn Width="20" UnboundType="Boolean" AllowEditing="True" ShowInColumnChooser="False" AllowAutoFilter="False">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<dxe:CheckEdit x:Name="chkSelectedRow" IsThreeState="False" HorizontalAlignment="Center" VerticalAlignment="Center">
</dxe:CheckEdit>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn Header="Created" AllowEditing="False" FieldName="Created" />
<dxg:GridColumn Header="Operation type" AllowEditing="False" FieldName="OperationDisplay" />
<dxg:GridColumn Header="Amount" AllowEditing="False" FieldName="Amount">
<dxg:GridColumn.EditSettings>
<dxe:SpinEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="c2" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn Header="Description" AllowEditing="False" FieldName="Description" />
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView BestFitArea="Header" BestFitMode="AllRows" AutoWidth="True" ShowGroupPanel="False" ShowAutoFilterRow="True" MultiSelectMode="Row" NavigationStyle="Row"
RowStyle="{StaticResource AccountHistoryRowStyle}" DataRowTemplate="{StaticResource ChargeRowTemplate}" FocusedRow="{Binding SelectedOperation, Mode=TwoWay}">
<dxg:TableView.Resources>
<DataTemplate x:Key="{dxgt:RowIndicatorThemeKey ResourceKey=FocusedIconTemplate}">
<Canvas Width="20" Height="20">
<Rectangle Fill="LightBlue" HorizontalAlignment="Center" VerticalAlignment="Center" Width="20" Height="20" />
<Polygon Points="5,5 5,15 10,10" Fill="Blue" />
</Canvas>
</DataTemplate>
</dxg:TableView.Resources>
</dxg:TableView>
</dxg:GridControl.View>
</dxg:GridControl>