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>