Datagrid флажок ячейки - PullRequest
       5

Datagrid флажок ячейки

2 голосов
/ 02 октября 2009

Я разработал приложение для Windows Forms, и у него есть сетка данных с флажком. Если я нажимаю кнопку, то хочу получить все отмеченные строки и выполнить с ними некоторые операции. Проблема в том, что при нажатии кнопки она не распознает последнее действие флажка. Это как на шаг позади.

Мой код:

    private void copyToToolStripMenuItem_Click(object sender, EventArgs e)
    {
        dataGridView1.ClearSelection();
        DialogResult result = this.folderBrowserDialog1.ShowDialog();
        if (result == DialogResult.OK)
        {
            string foldername = this.folderBrowserDialog1.SelectedPath;
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                if (row.Cells[0].Value != null)
                {
                    if ((bool)row.Cells[0].Value == true)
                    {
                        try
                        {
                            string[] vars = row.Cells[1].Value.ToString().Split('\\');
                            System.IO.File.Copy(row.Cells[1].Value.ToString(), foldername + @"\" + vars[vars.Length - 1], true);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.ToString());
                        }
                    }
                }
            }
        }
    }

Данные из SQL-запроса - обычные вещи.

1 Ответ

1 голос
/ 02 октября 2009

Roland

Причина может заключаться в том, что данные еще не были переданы источнику. Принцип работы DataGridView заключается в том, что он «связан» с источником и синхронизирует данные. Однако изменения, сделанные в DataGridView, не сразу обновляют DataGridView. Он считается «грязным».

Попробуйте проверить исходный источник данных после изменения, вы также можете попробовать вызвать BindingContext (..). EndCurrentEndit (); или что-то подобное, чтобы попытаться убедиться, что данные зафиксированы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...