DataSourceを変更しても画面のControlが更新されない

■DataGridViewやListBoxでDataSoruceの値を変えても、画面の内容がDataSouce値に

 応じた内容に変更されない

 

・変更前後で同じインスタンスをDataSourceに使うと、

 再バインドされず更新されない。

 ★例えば以下の様な場合

  Dim wList As New List(Of String)
     ①wList = LbMain.DataSource
     ②wList.RemoveAt(LbMain.SelectedIndex) 
     ③LbMain.DataSource = wList

 

  ①で現在のDataSourceを取得し②で値の変更、③で再セットを

  しているが、すべて最初に取得した同じインスタンスに対して実施している。

  この場合、③にて別のDetaSourceがセットされたと判断されず

  再バインドが行われない。

  例えば、③の前に以下のようなものを挟むと再バインドが行われる。

  LbMain.DataSource = Nothing

  または①のListと③でセットするListを別のインスタンスすれば問題ない。