我正在创建一个窗口供用户使用DataGrid
删除多个数据库寄存器以显示数据,并使用Button
执行删除
所以我在此DataGridTemplateColumn
DataGrid
和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以检查是否已检查?
答案 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];
}