获取WPF数据网格视图默认复选框值

本文关键字:默认 复选框 视图 网格 WPF 数据 数据网 获取 | 更新日期: 2023-09-27 18:05:26

我正在做一个WPF windows应用程序,我需要一个帮助来解决其中的一些问题。

我有一个数据网格视图;这是一个XML:

<DataGrid x:Name="MyDataGrid" Margin="0,55.333,8,209.692" Width="273.27">
 <DataGrid.Columns>
                <DataGridTextColumn Header="ID" IsReadOnly="True" Binding="{Binding ID}" Visibility="Hidden" />
                <DataGridTextColumn Header="CopID" IsReadOnly="True" Binding="{Binding CopID}" Visibility="Hidden"/>
                <DataGridTextColumn Header="CgID" IsReadOnly="True" Binding="{Binding CgID}" Visibility="Hidden"/>
                <DataGridTextColumn Header="Item Names" Width="190" IsReadOnly="True" Binding="{Binding ItemName}"/>
                <DataGridCheckBoxColumn  Header="Select" CanUserReorder="False" />
            </DataGrid.Columns>
</DataGrid>

我想在循环中检查DataGridCheckBoxColumn CheckBox是真还是假我的希望是当用户点击按钮时读取列值;下面是代码:

for (int i = 0; i < MyDataGrid.Items.Count - 1; i++)
{
    /*Some code here for Check CheckBox True or False*/
    for (int j = 0; j < MyDataGrid.Columns.Count; j++)
    {      
      string Massage = (MyDataGrid.Items[j] as DataRowView).Row.ItemArray[3].ToString();
      MessageBox.Show( Massage);
     }
 }

我想检查CheckBox在循环中是真还是假,以获得行列的值,其中CheckBox被检查,我希望有人能帮助我与我的代码竞争,我已经放弃了。我希望这段代码工作时,用户单击按钮,因为我必须保存记录与此循环在数据库中,CheckBox是真的在MyDataGrid

当我选中CheckBox调用select all时,我还想选中datagrid的all复选框。我希望有朋友能尽快帮我谢谢你

获取WPF数据网格视图默认复选框值

我首先会说,通常情况下,你不应该这样做,这就是为什么它比你想象的要困难。您通常应该访问底层数据源,而不是DataGrid本身的cell。

也就是说,可能的。例如:

private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
        const int CHECKBOX_COLUMN = 4;
        for (int i = 0; i < MyDataGrid.Items.Count - 1; i++)
        {
            DataGridCell cell = GetCell(i, CHECKBOX_COLUMN);
            CheckBox tb = cell.Content as CheckBox;
            MessageBox.Show(tb.IsChecked.ToString());
        }
}

函数GetCell()(以及GetCell使用的内部函数)可以在这里找到