2013-04-03 3 views
0

У меня есть управление Devexpress XtraGrid. Но при загрузке winform я не смог получить идентификатор выбранной по умолчанию строки. Я знаю, как получить его, когда пользователь нажимает на сетку.Как получить управляемый элемент управления Devexpress XtraGrid

Вот код снимок:

private void Form1_Load(object sender, EventArgs e) 
    { 
    grid1.DataSource = bindData(DataClassesDataContext.Table1.ToList()); 

    ID = Convert.ToInt32(gridView.GetRowCellValue(gridView.FocusedRowHandle, "ID")); 
    XtraMessageBox.Show(ID.ToString()); 
    } 


    public BindingSource bindData(object obj) 
    { 
     BindingSource ctBinding; 
     try 
     { 
      ctBinding = new BindingSource(); 

      ctBinding.DataSource = obj; 

      return ctBinding; 
     } 
     catch (Exception ex) 
     { 
      XtraMessageBox.Show(ex.Message, "Database Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
      return null; 
     } 
    }    
+0

Что такое тип 'Table1'? –

+0

Это объект таблицы, доступ к которому осуществляется с использованием LINQ to SQL. – aby

+0

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

ответ

0

Если я вас правильно понимаю, что вам нужно что-то вроде этого:

private void Form1_Shown(object sender, EventArgs e) 
    { 
    grid1.DataSource = bindData(DataClassesDataContext.Table1.ToList()); 

    var item = gridView.GetFocusedRow() as YourDataType 
    if(item != null) 
    { 
     ID = item.ID; 
     XtraMessageBox.Show(ID.ToString()); 
    } 
    } 

при условии, что ваш bindData возвращает коллекцию набранной какое-то.

** Обновление **

Перемещение кода в form_Shown, казалось, сделать трюк.

+0

@aby этот ответ работает на вас? –

Смежные вопросы