0

我正在开发一个 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当我要检查调用全选时,我还想选中数据网格的所有复选框。希望有朋友能尽快帮帮我谢谢

4

1 回答 1

1

我首先要说的是,通常情况下,您不应该这样做,这就是为什么它比您预期的要困难。您通常应该访问基础数据源而不是 DataGrid 本身中的单元格。

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

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 使用的内部函数)here

于 2013-03-24T12:23:39.193 回答