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