0

DotNetBar SuperDataGrid Controllの列をcomboBoxとして(より正確には)としてレンダリングしたいと思いますGridComboBoxExEditControl。はSuperDataGridバインディングソースに接続されています。DataBindingCompleteイベントでは、私は次のものを持っています:

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クラスは次のようになります。

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

これにより、次のようになります。SuperDataGridはセルに正しい値を表示します。バインディングは正しく、「Article」としてレンダリングされた場合、「ArticleID」のすべての値が正しくなります。問題は、値がArticleID = 1 to ArticleID = 2 (Article ="ArticleNo1"からArticle="Artcle No2")にシフトすると、SuperDataGridが何らかの形で無限ループになり、値が1と2の間でシフトし始めることです。何か間違ったことをしていますか?誰かがこの主題についていくつかのアドバイスを提供することができれば、私は非常に感謝します。PS私もこれを試しました:

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"

同じ結果が得られました。

4

1 に答える 1

1

{ArticleBindingSource, "Article", "ArticleID"} DisplayMember、ValueMember の値が同じ場合は正しくないと思います

于 2013-02-26T19:18:49.493 に答える