首页 文章

将组合框和列表框绑定到List(VB.NET)时出现问题

提问于
浏览
3

我想一个组合框和列表框绑定到Vb.Net(VS2013)的列表(串),这是一个WinForms应用程序,事情是,设置在组合框和列表框都DataSource属性后,在其中任何一个上选择一个项目会影响另一个控件,例如,如果我从ListBox中选择了一个项目,那么在控件填充了信息之后,在ComboBox中选择了相同的项目,这就是相同的方式对于ComboBox,如果我从中选择一个项目,那么该项目也会在ListBox中被选中,所以我的问题是......如何将组合框和列表框绑定到同一个List(Of String)而不影响上的行为控件,目的是保持该表单中的所有控件基于List的内容同步,我在这样的模块中声明了List:

Public listaAreas As New List(Of String)

然后控件在表单加载时填充如下:

cmbArea.DataSource = listaAreas
    lstAreas.DataSource = listaAreas

每当我需要更新信息时,我都会运行此方法:

Private Sub RefreshLists()
    lstAreas.DataSource = Nothing
    lstAreas.DataSource = listaAreas

    cmbArea.DataSource = Nothing
    cmbArea.DataSource = listaAreas
End Sub

如果我错过了一些信息,请告诉我,这是我的第一篇文章,但我认为这很清楚,所以你可以了解我在这里想要完成的事情...... =)

提前致谢!

1 回答

  • 0

    尝试设置单独的BindingSources并尝试使用BindingList(Of String)而不仅仅是List,它不会报告项目更改:

    Private listaAreas As New BindingList(Of String)
    Private cbSource As New BindingSource(listaAreas, String.Empty)
    Private lbSource As New BindingSource(listaAreas, String.Empty)
    
    Public Sub New()
      InitializeComponent()
      cmbArea.DataSource = cbSource
      lstAreas.DataSource = lbSource
    End Sub
    

    您的代码中使用了相同的货币位置,但通过定义两个单独的绑定源,每个源都有自己的position属性 .

相关问题