繁体   English   中英

C#DataGrid单元格提取

[英]c# datagrid cell extraction

嘿,我试图将选定项目中的字符串存储在数据网格中,因为它具有要删除的文件路径ID。

不确定即时通讯是否以正确的方式进行。

我的柱子看起来像这样

| ID | 用户编号| 名| 姓氏| 当前| imagePath |

..01 ... 454656 .........哈利.........波特.........向导... ftp://192.168.1.8/ Jellyfish.jpg

我试图在我的数据网格中“选择时”删除时我也从我的ftp服务器中删除。 我需要在imagePath coloum下存储的信息,以便随后可以删除ftp。

    private void button2_Click(object sender, RoutedEventArgs e)
{
    string imagePath = dataGrid1.SelectedItems.ToString();
    Student selected = dataGrid1.SelectedItem as Stu;
    if (selected == null)
        MessageBox.Show("You must select a user");
    else
    {
        if (MessageBoxResult.Yes == MessageBox.Show("Are you sure", "delete user",
            MessageBoxButton.YesNo, MessageBoxImage.Warning))
        {
            FTPdelete(imagePath, "Administrator", "commando");
            Class1.DeleteStudent(selected);
            Window_Loaded(null, null);
        }
    }
}
private void FTPdelete(String imagePath, String inUsername, String inPassword)
{
    var req = (FtpWebRequest)WebRequest.Create(imagePath);
    req.Proxy = null;
    req.Credentials = new NetworkCredential(inUsername, inPassword);

    req.Method = WebRequestMethods.Ftp.DeleteFile;

    req.GetResponse().Close();
}

}

}

我得到的错误:

索引超出范围。 必须为非负数并且小于集合的大小。 参数名称:索引

在这条线上:

string imagePath = dataGrid1.SelectedItems[6].ToString();

我也尝试过

var imagePath = dataGrid1.SelectedItems[6].ToString();

没运气:(以为我快吃了!!

编辑答案

不好意思告诉您我还没有使用WPF,所以仅出于您的问题,我不得不一点点:)我回答了您的问题,假设WPF与WinForms几乎相似。

所以这是答案:)

DataRowView dr = (DataRowView)(dataGrid1.SelectedItems[0]);
MessageBox.Show(dr.Row.ItemArray[5].ToString());

dataGrid1.SelectedItems是一个包含所有选定行的数组。 因此,您需要第一个。 如果您不希望用户选择多于一行,请将SelectionMode设置为Single

您首先将SelectedItem转换为DataRowView类型,然后可以使用它来访问该特定行的列。

很抱歉迟到了,希望对您有所帮助:)

您的“ SelectedItems [6]”超出范围。 请记住,在数组中,您以“ 0”开头,而不是以“ 1”开头。

字符串imagePath = dataGrid1.SelectedItems [5] .ToString();

应该管用。

暂无
暂无

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

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