![](/img/trans.png)
[英]Dev Express Populating XtraGrid.GridControl Using RunWorkerAsync Skin Issue
[英]Dev Express XtraGrid Checkbox
我在DevExpress 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
結果如下:
您應該通過處理ColumnView.CustomUnboundColumnData事件為未綁定列提供數據。
以下是讀/寫方案(C#)的ColumnView.CustomUnboundColumnData
事件用法演示:
//...
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;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.