【问题标题】:WPF Data Grid View default Checkbox value getWPF Data Grid View 默认 Checkbox 值获取
【发布时间】:2013-03-24 20:26:21
【问题描述】:

我正在开发一个 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 所在的列我希望有人可以帮助我 竞争我已经放弃的代码。我希望此代码在用户单击按钮时起作用,因为我必须使用此循环将记录保存在数据库中,其中CheckBoxMyDataGrid 中为真。

当我将检查CheckBox 调用全选时,我还想选中数据网格的所有复选框。 希望有小伙伴尽快帮帮我 谢谢你

【问题讨论】:

    标签: c# wpf


    【解决方案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

    【讨论】:

    • 谢谢 Blachshma,这对我来说真的很有帮助。如果我想选择所有复选框并使用全选按钮或使用复选框取消选择所有支票簿,你能告诉我怎么做吗?相同的代码将帮助它完成还是必须为此执行不同的代码?
    • 一旦有了 CheckBox 就可以手动勾选或取消勾选,所以代码很相似
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    相关资源
    最近更新 更多