Группа компонентов платформы dotnet использует компонент DataSource. У меня есть объект с рядом настроек, которые могут изменять источник данных, который он представляет. Я хотел бы установить этот объект как раскрывающийся DataSource набора ComboBoxes и DataGridViewComboBoxCells.
Моя проблема возникает при попытке на самом деле зацепить вещь в ComboBox. Я предполагаю, что, поскольку изменения в DataSource могут произойти после установки DataSource, я должен использовать одну из этих вещей BindingSource, но литература MSDN вытягивает свою обычную шутку, рассказывая мне, что такое BindingSource, не говоря мне, что он делает или как это работает.
Какой лучший способ, ребята, вы можете предложить для подключения этого объекта в качестве DataSource/BindingSource?
РЕДАКТИРОВАТЬ:
Очевидно, что этот класс является мусором, но он иллюстрирует тип объекта, который у меня есть сейчас.
Большая часть времени в данный момент находится в воздухе, но в основном это показывает, что мой класс не является сама коллекция, но содержит один. Мне нужно иметь возможность указать свойству DataSource ComboBox, что здесь находится изменчивый список, и что он должен использовать этот список в качестве источника данных для своего раскрывающегося списка.
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