如何拖放到数据绑定的datagridview

时间:2019-04-03 09:12:58

标签: c# datagridview binding drag-and-drop

下午好,

我有一个包含DataGridView的小程序,希望将PDF文件拖放到其中。

除了一个例外,我的程序运行正常

如果当前行是您输入新数据的最后一行,那么我会收到错误消息

错误:由于对象的当前状态,操作无效。

我了解为什么会收到此错误。我认为您需要在添加任何新内容之前提交或取消对网格所做的任何更改。我只是不知道该怎么做。

我可以通过在添加到PDFList之前取消绑定来阻止这种情况的发生,然后在完成后再次绑定。但这是一种可怕的方式。

我也尝试过

if (dataGridView1.CurrentRow.IsNewRow || dataGridView1.IsCurrentRowDirty)
    dgv.EndEdit(); 

但没有区别

public partial class Form1 : Form
{
    BindingList<PDFFile> PDFList = new BindingList<PDFFile>();
    public MainForm()
    {
        InitializeComponent();
        dataGridView1.DataSource = PDFList;
    }

    void DgvDragDrop(object sender, DragEventArgs e)
    {
        PDFFile pdfFile;

        string[] files = (string[]) e.Data.GetData(DataFormats.FileDrop);
        foreach (string file in files)
        {
            try
            {
                pdfFile = new PDFFile();
                pdfFile.Path = file;

                PDFList.Add(pdfFile);
            }
            catch (Exception error)
            {
                MessageBox.Show("Error: " + error.Message);
            }
        }
    }

    void dataGridView1DragEnter(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.FileDrop))
            e.Effect = DragDropEffects.Copy;
    }
}

public class PDFFile
{
    public string Path {get; set;}
}

请提供任何帮助。

0 个答案:

没有答案