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

时间:2013-03-24 06:46:54

标签: c# wpf

我正在开发一个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是true还是false以获取该行的值。CheckBox的列已被检查我希望有人可以帮助我 竞争我已经放弃的代码。我希望这个代码在用户点击按钮时起作用,因为我必须在CheckBoxMyDataGrid为真的数据库中使用此循环保存记录。

当我检查CheckBox电话选择全部时,我还想选中所有数据网格复选框。 我希望有些伙伴能尽快帮助我 谢谢

1 个答案:

答案 0 :(得分:1)

我首先会说,通常情况下,你不应该这样做,这就是为什么它比你期望的更难。您通常应该访问基础DataSource而不是DataGrid本身中的Cells。

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

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