G
Guest
I'm binding a ComboBox's SelectedValue property to a datasource and using a
custom Format event. The problem is that the format event never fires. Here's
some sample code that demonstrates this (create a form with a combobox on it):
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim t As DataTable = New DataTable
t.Columns.Add(New DataColumn("ID",
System.Type.GetType("System.Int32")))
t.Columns.Add(New DataColumn("Name",
System.Type.GetType("System.String")))
t.Rows.Add(New Object() {1, "One"})
t.Rows.Add(New Object() {2, "Two"})
t.Rows.Add(New Object() {3, "Three"})
ComboBox1.DataSource = t
ComboBox1.DisplayMember = "Name"
ComboBox1.ValueMember = "ID"
getBinding()
End Sub
Public Sub getBinding()
Dim t As DataTable = New DataTable
t.Columns.Add("EntityID", System.Type.GetType("System.String"))
t.Columns.Add("NumberID", System.Type.GetType("System.Int32"))
t.Rows.Add(New Object() {"123", 2})
Dim b As Binding = New Binding("SelectedValue", t, "NumberID")
AddHandler b.Format, AddressOf Format_Event
ComboBox1.DataBindings.Add(b)
End Sub
Private Sub Format_Event(ByVal sender As Object, ByVal e As
ConvertEventArgs)
MsgBox("Moo")
End Sub
As it standards, Format_Event will never run (although the combobox is
properly bound and it's value is set to 2). Also note that if you change the
binding so that it binds to the SelectedIndex property, the Format event
fires as expected.
So the question is, why doesn't the Format event fire when I add a binding
to a ComboBox's SelectedValue property?
Apologies if this has been answered already. I've found similar questions
asked on various newsgroups but haven't seen any solutions.
custom Format event. The problem is that the format event never fires. Here's
some sample code that demonstrates this (create a form with a combobox on it):
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim t As DataTable = New DataTable
t.Columns.Add(New DataColumn("ID",
System.Type.GetType("System.Int32")))
t.Columns.Add(New DataColumn("Name",
System.Type.GetType("System.String")))
t.Rows.Add(New Object() {1, "One"})
t.Rows.Add(New Object() {2, "Two"})
t.Rows.Add(New Object() {3, "Three"})
ComboBox1.DataSource = t
ComboBox1.DisplayMember = "Name"
ComboBox1.ValueMember = "ID"
getBinding()
End Sub
Public Sub getBinding()
Dim t As DataTable = New DataTable
t.Columns.Add("EntityID", System.Type.GetType("System.String"))
t.Columns.Add("NumberID", System.Type.GetType("System.Int32"))
t.Rows.Add(New Object() {"123", 2})
Dim b As Binding = New Binding("SelectedValue", t, "NumberID")
AddHandler b.Format, AddressOf Format_Event
ComboBox1.DataBindings.Add(b)
End Sub
Private Sub Format_Event(ByVal sender As Object, ByVal e As
ConvertEventArgs)
MsgBox("Moo")
End Sub
As it standards, Format_Event will never run (although the combobox is
properly bound and it's value is set to 2). Also note that if you change the
binding so that it binds to the SelectedIndex property, the Format event
fires as expected.
So the question is, why doesn't the Format event fire when I add a binding
to a ComboBox's SelectedValue property?
Apologies if this has been answered already. I've found similar questions
asked on various newsgroups but haven't seen any solutions.