GetDataRow возвращает значение NULL для действительного rowHandle - PullRequest
0 голосов
/ 12 октября 2019

Я пытаюсь получить выбранные строки из сетки, когда пользователь выбирает параметр во всплывающем меню. У меня есть следующий код

    private void gridView1_PopupMenuShowing(object sender, 
    DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventArgs e)
    {
        if (e.MenuType != DevExpress.XtraGrid.Views.Grid.GridMenuType.Row) return;
        var item = new DXMenuItem("Delete");
        item.Click += (o, args) =>
        {
            var rowHandles = gridView1.GetSelectedRows();
            foreach (var rowHandle in rowHandles)
            {
                System.Data.DataRow row = gridView1.GetDataRow(rowHandle); 
                // debugger shows that rowHandle = 1 
                if (row == null)
                {
                    Console.WriteLine("how so?");  // breaks here
                }
            }
        };
        e.Menu.Items.Add(item);
    }

Когда я запускаю в отладчике, я ожидаю, что строка будет действительной, однако она равна нулю.

1 Ответ

0 голосов
/ 12 октября 2019

Оказывается, так как у меня есть сетка, получающая данные из источника привязки, и я устанавливаю источник привязки

, документы объясняют , что GetDataRows вернет ноль

Если источником данных представления является пользовательская коллекция объектов, метод GetDataRow возвращает нуль

...