如何获取DataGridTemplateColumn中的复选框?

时间:2013-09-06 00:19:02

标签: c# wpf checkbox datagrid

我正在创建一个窗口供用户使用DataGrid删除多个数据库寄存器以显示数据,并使用Button执行删除

所以我在此DataGridTemplateColumn

DataGridCheckBox推了一个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以检查是否已检查?

2 个答案:

答案 0 :(得分:3)

我推荐的方法是在ViewModel中保留List<Item>,每当您检查行中的CheckBox时,将设置数据网格SelectedItem并添加项目被选中List。然后,单击该按钮时,将删除List中的所有记录。

理想情况下,您还希望使用Command s。

来实现此目的

答案 1 :(得分: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];
}