多数の dotnet フレームワーク コンポーネントが DataSource コンポーネントを使用します。それが表す DataSource を変更できる多くの設定を持つオブジェクトがあります。このオブジェクトを ComboBoxes と DataGridViewComboBoxCells のセットのドロップダウン DataSource として設定したいと思います。
私の問題は、実際に物を ComboBox にフックしようとしたときに発生します。DataSource が設定されると、DataSource への変更が発生する可能性があるため、これらの BindingSource のいずれかを使用する必要があると思いますが、MSDN の資料では、bindingSource が何をするのかを説明せずに、バインディングソースが何であるかを伝えるといういつものいたずらを引っ張っています。またはそれがどのように機能するか。
このオブジェクトを DataSource/BindingSource として接続するために提案できる最善の方法は何ですか?
編集:
明らかにこのクラスはジャンクですが、私が今持っているオブジェクトの種類を示しています。
現時点ではほとんどのタイミングが未定ですが、基本的にこれが示しているのは、私のクラスはコレクション自体ではなく、コレクションを含んでいるということです。ComboBox の DataSource プロパティに、揮発性のリストがここにあり、そのリストをドロップダウンの DataSource として使用する必要があることを指示できる必要があります。
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