繁体   English   中英

如何在WPF C#中获取DataGrid中2行的不同索引?

[英]how to get different index of 2 row in datagrid in wpf c#?

我几天前已经在下面发布了这个问题:

在WPF或WinForm中使用DataGrid(或DataGridView)遇到问题

现在,我还有一个问题:

我想以这种方式在datagrid中获得2行的不同索引,如下所示,但它不起作用!

     var index = dgGroup.Items.IndexOf(dgGroup.SelectedItem) + 1;

    // Starting from the index found above loop through section rows untill you find blank row which can be identified by checking if "Group Name" does not have any value.

    for (int i = index; i < dgGroup.Items.Count; i++)
    {
        if (((DataRowView)dgGroup.Items[i]).Row.ItemArray[1].ToString().Trim() == string.Empty)
        {
            return;
        }
        else
        {
              int var1 = dgGroup.Items.IndexOf(dgGroup.SelectedItem);
              int var2 = dgGroup.Items.IndexOf(((DataRowView)dgGroup.Items[i]).Row.ItemArray[1].ToString().Trim() == string.Empty);

              if((var2-var1)==2)
             {
                 // Add data to one line data textbox
             }

            else 
            {
                  // Add data to more than one line data textbox
            }

        }
    }

问题是什么 ? 谢谢你的帮助。

我不确定您要做什么,但是我可以看到您的代码有问题。

int var1 = dgGroup.Items.IndexOf(dgGroup.SelectedItem);

上一行将获取所选行的索引,但是下一行是错误的:

int var2 = dgGroup.Items.IndexOf(((DataRowView)dgGroup.Items[i]).Row.ItemArray[1].
ToString().Trim() == string.Empty);

我什至看不到如何编译...您正在尝试使用以下代码作为IndexOf方法的输入参数,该方法应从集合中获取一项而不是bool值:

((DataRowView)dgGroup.Items[i]).Row.ItemArray[1].ToString().Trim() == string.Empty

我认为您需要用以下内容代替该行:

int var2 = dgGroup.Items.IndexOf(((DataRowView)dgGroup.Items[i]).Row);

另外,这些代码位不应该在if语句中而不是else吗? 您说过要查找具有空白组名称的项目,但是在if语句中,找到空白条目后就返回。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM