DotNetBar SuperDataGrid Controll의 열을 comboBox (정확하게는 GridComboBoxExEditControl
)로 렌더링하려고합니다. SuperDataGrid
이 바인딩 소스에 연결되어 있습니다.ComboBox DotNetBar에서 렌더링 SuperDataGrid
Private Sub SuperGrid_DataBindingComplete(ByVal sender As Object, ByVal e As DevComponents.DotNetBar.SuperGrid.GridDataBindingCompleteEventArgs) Handles SuperGrid.DataBindingComplete
Dim panel As DevComponents.DotNetBar.SuperGrid.GridPanel
panel = e.GridPanel
panel.Columns("ArticleID").RenderType = GetType(MyComboBox)
panel.Columns("ArticleID").RenderParams = New Object() {ArticleBindingSource, "Article", "Article"}
End Sub
을 그리고 따른 myComboBox 클래스는 간다 : DataBindingComplete
이벤트에서 나는 다음과 같은 가지고있는 SuperDataGrid는 세포에서 올바른 값을 보여줍니다 :
Public Class MyComboBox
Inherits GridComboBoxExEditControl
Public Sub New(ByVal Bind As BindingSource, ByVal disp As String, ByVal val As String)
DataSource = Bind
DisplayMember = disp
ValueMember = val
End Sub
End Class
이는 다음에 발생합니다. 바인딩은 정확하며 "ArticleID"의 모든 값은 "Article"으로 표시됩니다. 문제는 값이 ArticleID = 1 to ArticleID = 2
(Article = "Article No1"에서 Article = "Art No2")로 바뀌면 SuperDataGrid가 끝없는 루프 형태로 바뀌고 값이 1에서 2 사이로 이동한다는 것입니다. 잘못된? 누구든지이 주제에 대해 조언을 해줄 수 있다면 매우 감사 할 것입니다. 오후 8시 30 분 P.S. 나는 또한 이것을 시도 :
panel.Columns("ArticleID").EditorType = GetType(GridComboBoxExEditControl)
Dim art As GridComboBoxExEditControl = DirectCast(panel.Columns("ArticleID").EditControl, GridComboBoxExEditControl)
art.DataSource = ArticleBindingSource
art.DisplayMember = "Article"
art.ValueMember = "ArticleID"
같은 결과가 나타납니다.