Verwenden eines Objekts, das keine Sammlung ist, als DataSource

Eine Reihe von Dotnet-Framework-Komponenten verwenden eine DataSource-Komponente. Ich habe ein Objekt mit einer Reihe von Einstellungen, mit denen die von ihm dargestellte DataSource geändert werden kann. Ich möchte dieses Objekt als Dropdown-DataSource einer Reihe von ComboBoxen und DataGridViewComboBoxCells festlegen.

Mein Problem kommt beim Versuch, das Ding tatsächlich in die ComboBox einzuhaken. Ich denke, da die Änderungen an der DataSource auftreten können, sobald die DataSource festgelegt wurde, muss ich eines dieser BindingSource-Dinge verwenden, aber die MSDN-Literatur sagt mir immer wieder, was eine BindingSource ist, ohne mir zu sagen, was sie tut oder wie es funktioniert.

Was ist der beste Weg, wie ihr vorschlagen könnt, dieses Objekt als DataSource / BindingSource anzuschließen?

BEARBEITEN:
Offensichtlich ist diese Klasse Schrott, aber sie zeigt die Art von Objekt, die ich jetzt habe.
Der größte Teil des Timings liegt momentan in der Luft, aber im Grunde zeigt dies, dass meine Klasse keine Sammlung selbst ist, sondern eine enthält. Ich muss in der Lage sein, die DataSource-Eigenschaft einer ComboBox anzuweisen, dass sich hier eine flüchtige Liste befindet und diese Liste als DataSource für das Dropdown-Menü verwenden soll.

<code>Public Class DynamicDataSource
    Private basicList As New List(Of String)(New String() {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"})
    Private _showEvensOnly As Boolean
    Private _showNotContainingO As Boolean
    Public Property ShowEvensOnly() As Boolean
        Get
            Return _showEvensOnly
        End Get
        Set(ByVal value As Boolean)
            _showEvensOnly = value
        End Set
    End Property
    Public Property ShowNotContainingO() As Boolean
        Get
            Return _showNotContainingO
        End Get
        Set(ByVal value As Boolean)
            _showNotContainingO = value
        End Set
    End Property
    Public Function GetDynamicList() As List(Of String)
        Dim processMe As New List(Of String)(basicList)
        If Me._showEvensOnly Then
            For JJ As Integer = processMe.Count - 1 To 0 Step -1
                If JJ Mod 2 = 0 Then
                    processMe.Remove(processMe(JJ))
                End If
            Next
        End If

        If Me._showNotContainingO Then
            For JJ As Integer = processMe.Count - 1 To 0 Step -1
                If processMe(JJ).ToUpper.Contains("O"c) Then
                    processMe.Remove(processMe(JJ))
                End If
            Next
        End If

        Return processMe
    End Function
End Class
</code>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage