2013-10-11 5 views
0

У меня проблема с проверкой в ​​элементе управления DevExpress XtraGrid.Dev Express XtraGrid Флажок

Я создал несвязанный столбец в коде (не через мастер), и этот флажок не может быть проверен мышью.

Вот мой код:

Private Sub DataViewFrm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

    Dim data As New DataTable 
    data=getDataTable("select....") 

    gridViewer.DataSource = data 

    Dim Tick As New RepositoryItemCheckEdit() 

    gridViewer.Refresh() 

    Dim unbColumn As GridColumn = gridvwViewer.Columns.AddField("Coba") 
    unbColumn.VisibleIndex = gridvwViewer.Columns.Count 
    unbColumn.UnboundType = DevExpress.Data.UnboundColumnType.Boolean 
    unbColumn.OptionsColumn.AllowEdit = True 
    unbColumn.OptionsColumn.ReadOnly = False 

    gridvwViewer.Columns(8).ColumnEdit = Tick  
End Sub 

Вот результат: screenshot

ответ

2

Вы должны предоставить данные для несвязанных столбцов путем обработки ColumnView.CustomUnboundColumnData события.
Вот демонстрация использования в ColumnView.CustomUnboundColumnData событий для сценария чтения/записи (C#):

//... 
var unbColumn = gridView1.Columns.AddField("Coba"); 
unbColumn.VisibleIndex = gridView1.Columns.Count; 
unbColumn.UnboundType = DevExpress.Data.UnboundColumnType.Boolean; 
CobaValues = new Dictionary<int, bool>(); 
gridView1.CustomUnboundColumnData += gridView1_CustomUnboundColumnData; 

//... 
IDictionary<int, bool> CobaValues; 
void gridView1_CustomUnboundColumnData(object sender, CustomColumnDataEventArgs e) { 
    if(e.Column.FieldName == "Coba") { 
     if(e.IsGetData) { 
      bool value; 
      if(CobaValues.TryGetValue(e.ListSourceRowIndex, out value)) 
       e.Value = value; 
     } 
     if(e.IsSetData) { 
      CobaValues[e.ListSourceRowIndex] = (bool)e.Value; 
     } 
    } 
} 
Смежные вопросы