2013-02-15 3 views
0

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" 

같은 결과가 나타납니다.

답변

1

{ArticleBindingSource, "Article", "ArticleID"} DisplayMember와 동일한 값일 때 ValueMember ValueMember