Używanie obiektu innego niż kolekcja jako źródła danych
Kilka komponentów struktury dotnet używa komponentu DataSource. Mam obiekt, który ma wiele ustawień, które mogą modyfikować źródło danych, które reprezentuje. Chciałbym ustawić ten obiekt jako rozwijane źródło danych zestawu ComboBoxes i DataGridViewComboBoxCells.
Mój problem pojawia się, gdy próbuję podłączyć urządzenie do ComboBoxa. Domyślam się, że ponieważ zmiany w DataSource mogą się zdarzyć po ustawieniu DataSource, muszę użyć jednej z tych rzeczy BindingSource, ale literatura MSDN ciągnie swój zwykły wybryk mówienia mi, co to jest źródło powiązań, nie mówiąc mi, co robi lub jak to działa.
Jaki jest najlepszy sposób na podpięcie tego obiektu jako DataSource / BindingSource?
EDYTOWAĆ:
Oczywiście ta klasa to śmieci, ale ilustruje ona rodzaj obiektu, który mam teraz.
Większość czasu jest w tej chwili w powietrzu, ale w zasadzie to, co pokazuje to, że moja klasa nie jest samą kolekcją, ale zawiera jedną. Muszę być w stanie poinstruować właściwość DataSource ComboBox, że znajduje się tutaj lista ulotna, i że powinna użyć tej listy jako źródła danych dla jej listy rozwijanej.
<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>