<DataGridTemplateColumn Header="IsAdmin">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox Name="IsAdminCheckBox" IsChecked="{Binding Path=IsAdmin}" Click="IsAdmin_Click" CommandParameter="{Binding Path=Id}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
这是我程序中数据网格的代码。在CS文件中,在click事件中,我想查看当它们检查它时,它是否已更改为已选中或未选中,以便我可以在数据库中处理,将用户从admin更改为不是admin,反之亦然。但是,只是调用IsAdminCheckBox不起作用,因为它找不到它,并且调用datagridName.IsAdminCheckBox也不起作用。有谁知道如何访问复选框的状态?
答案 0 :(得分:2)
您无法以这种方式访问此复选框,因为可能存在多个复选框,该名称仅在DataTemplate
内有效。
在事件处理程序中,sender
参数应该是CheckBox
,您只需要将其强制转换,然后就可以访问IsChecked
属性。另一种选择是处理Checked
和Uncheked
事件。
但我认为更好的方法是在绑定类中处理它,而不是在GUI的代码隐藏,关注点分离等等。