Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否从datagrid获取复选框的值?_C#_Wpf_Xaml_Datagrid_Checkbox - Fatal编程技术网

C# 是否从datagrid获取复选框的值?

C# 是否从datagrid获取复选框的值?,c#,wpf,xaml,datagrid,checkbox,C#,Wpf,Xaml,Datagrid,Checkbox,这是我在程序中为datagrid编写的代码。在CS文件中,在click事件中,我想看看当他们检查它时,它是否更改为checked,或unchecked,以便我可以在数据库中处理,将用户从admin更改为not admin,反之亦然。但是,仅仅调用IsAdminCheckBox是不起作用的,因为它找不到它,同时调用datagridName.IsAdminCheckBox也不起作用。有人知道如何访问复选框的状态吗?您不能以这种方式访问复选框,因为可能有多个复选框,名称仅在数据模板中有效 在事件处理程

这是我在程序中为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>