C# 是否从datagrid获取复选框的值?
这是我在程序中为datagrid编写的代码。在CS文件中,在click事件中,我想看看当他们检查它时,它是否更改为checked,或unchecked,以便我可以在数据库中处理,将用户从admin更改为not admin,反之亦然。但是,仅仅调用IsAdminCheckBox是不起作用的,因为它找不到它,同时调用datagridName.IsAdminCheckBox也不起作用。有人知道如何访问复选框的状态吗?您不能以这种方式访问复选框,因为可能有多个复选框,名称仅在C# 是否从datagrid获取复选框的值?,c#,wpf,xaml,datagrid,checkbox,C#,Wpf,Xaml,Datagrid,Checkbox,这是我在程序中为datagrid编写的代码。在CS文件中,在click事件中,我想看看当他们检查它时,它是否更改为checked,或unchecked,以便我可以在数据库中处理,将用户从admin更改为not admin,反之亦然。但是,仅仅调用IsAdminCheckBox是不起作用的,因为它找不到它,同时调用datagridName.IsAdminCheckBox也不起作用。有人知道如何访问复选框的状态吗?您不能以这种方式访问复选框,因为可能有多个复选框,名称仅在数据模板中有效 在事件处理程
数据模板中有效
在事件处理程序中,sender
参数应该是复选框
,您只需强制转换它,然后就可以访问IsChecked
属性。另一个选项是处理选中的
和取消选中的
事件
但我认为更好的方法是在绑定类中处理此问题,而不是在GUI的代码隐藏、关注点分离等方面。请给出一个示例:-)
<DataGridTemplateColumn Header="IsAdmin">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox Name="IsAdminCheckBox" IsChecked="{Binding Path=IsAdmin}" Click="IsAdmin_Click" CommandParameter="{Binding Path=Id}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>