Usando um objeto não-coleção como um DataSource
Um grupo de componentes de framework dotnet usa um componente DataSource. Eu tenho um objeto que tem um número de configurações que podem modificar o DataSource que ele representa. Eu gostaria de definir esse objeto como o DataSource suspenso de um conjunto de ComboBoxes e DataGridViewComboBoxCells.
Meu problema surge ao tentar realmente ligar a coisa na caixa de combinação. Eu acho que porque as alterações no DataSource podem acontecer uma vez que o DataSource foi definido, eu tenho que usar uma dessas coisas BindingSource, mas a literatura MSDN está puxando sua brincadeira habitual de me dizer o que é um bindingSource sem me dizer o que faz ou como funciona.
Qual é a melhor maneira que vocês podem sugerir de ligar este Objeto como um DataSource / BindingSource?
EDITAR:
Obviamente, essa classe é lixo, mas ilustra o tipo de objeto que tenho agora.
A maior parte do tempo está no ar no momento, mas basicamente o que isso mostra é que minha classe não é uma coleção em si, mas contém uma. Eu preciso ser capaz de instruir a propriedade DataSource de um ComboBox que há uma lista volátil a ser encontrada aqui e que deve usar essa lista como DataSource para sua lista suspensa.
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