2

我正在为用户删除多个数据库寄存器创建一个窗口,DataGrid用于显示数据和一个Button用于执行删除

所以我DataGridTemplateColumnDataGrid里面放CheckBox了一个DataGridTemplateColumn

<DataGrid Name="WordList" Margin="10" Width="230" AutoGenerateColumns="False" 
            SelectionMode="Single" SelectionChanged="WordList_SelectionChanged" 
            CanUserAddRows="False">
    <DataGrid.Columns>
        <DataGridTemplateColumn>
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <CheckBox Name="WordChecked" HorizontalAlignment="Center" 
                        VerticalAlignment="Center"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
        <DataGridTextColumn Binding="{Binding Path=Word}" Header="Word" Width="1*" 
            IsReadOnly="True"/>
    </DataGrid.Columns>
</DataGrid>

请问,如何使用 C# 访问此 CheckBox 以检查它是否被选中?

4

2 回答 2

3

我推荐的方法是List<Item>在 ViewModel 中保存一个,每当您CheckBox在该行中检查时,数据网格SelectedItem将被设置,并且您将选择的项目添加到List. 然后,当单击该按钮时,您将删除List.

Command理想情况下,您还希望使用s来实现它。

于 2013-09-06T01:11:43.270 回答
1
<DataGridTemplateColumn>
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <CheckBox IsChecked= "{Binding checked, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Click="CheckBox_Click"/>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
private void CheckBox_Click(object sender, RoutedEventArgs e)
{
   int index = DGItems.SelectedIndex;
   DataRowView drv = (DataRowView)DGItems.Items[index];
}
于 2018-10-28T04:33:58.120 回答