不要在PrepareEdit设置动态字典,这是一个无法解决的bug
代码放到AfterSelChange事件
Dim cl As Col = e.Table.Cols(e.NewRange.ColSel)
dim r as row = e.Table.Rows(e.NewRange.RowSel)
Dim aa() As String ={"T","N","M"}
For Each a As String In aa
If cl.Name = a Then '如果正在编辑的是a列
Dim dmp As New TableDataMap
dmp.DataTable = "TNMStage" '指定数据来源表
dmp.ValueCol = "TNM" '指定取值列
dmp.DisplayCol = "TNM" '指定显示列
dmp.ListCols = "肿瘤类型,TNM,分期标准,Version"
dmp.Filter = "[肿瘤类型] = '" & r("肿瘤类型") & "' and [TNM] Like '" & a & "%" & "'"
e.Table.Cols(a).DataMap = dmp.CreateDataMap() '生成并设置DataMap
End If
Next