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.
<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>