Добрый день,
У меня есть небольшая программа, которая содержит 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;}
}
Любая помощь будет принята с благодарностью, пожалуйста.