int[] arr = int[100];
listBox1.DataSource = arr;
void ComboBox1SelectedIndexChanged(object sender, EventArgs e)
{
.....//some processes
listBox1.DataSource = null;
listBox1.DataSource = arr;
}
is not working,
また、
listBox1.Refresh(); is not working,
また、
listBox1.Update(); is not working,
BindingList<T>
を使用できることはわかっていますが、配列のみを操作する必要があります。
リストボックスを更新する方法を教えてください。
次を試してください
listBox1.DataBind()
ここでスタック交換に関する私の最初の答え。
C#.Net 4.0:
listBox1.DataSource = null;
listBox1.DataSource = names;
初めてデータソースを設定すると、更新されることに気づきました。設定されているときに、もう一度同じに設定しようとしても、更新されません。
だから私はそれをnullにし、同じものに設定しました、そしてそれはこの問題で私のために正しく表示されました。
なんとか
FirstListBox.DataContext = null;
FirstListBox.DataContext = App.ViewModel;
単にリンクを失い、すべてのデータをリンクに戻します。
問題はListBoxSelectionModeに起因する可能性があります。
わからない理由で、SelectionModeがSelectionMode.Noneの場合、データバインディングは機能しません。
回避策は次のとおりです。
listBox.SelectionMode = SelectionMode.MultiExtended;
listBox.DataSource = myDatasource;
listBox.SelectionMode = SelectionMode.None;
それが役に立てば幸い。
ListBoxは、dataSourceにバインドされているオブジェクトが自身の変更を通知した場合にのみ、表示されているコンテンツを更新します。 BindingSourceオブジェクトには、DataSourceChangedというイベントがあります。ソースが別のオブジェクトに変更されると、リストボックスはそれ自体を更新します。リストをバインドするときも同じです。リストは変更されたことを通知しないため、リストを変更しても何も起こりません。この問題には簡単な解決策があります。BindingListを使用してください http://msdn.Microsoft.com/de-de/library/ms132679%28v=vs.110%29.aspx
bindingListには、リストが変更されるたびに(明らかに)ListChangedイベントが呼び出されます。したがって、Windows.FormオブジェクトのDataBindingsは、ListChangedなどのイベントを使用して自身を更新します。単純なリストはこのイベントをサポートしていません。
したがって、多くのデータバインディングを操作する場合は、次のことを知っておく必要があります。 http://msdn.Microsoft.com/de-de/library/system.componentmodel.inotifypropertychanged%28v=vs.110%29 .aspx
まあ、バインドせずに私は管理しただけです:
this.Hide();
this.Show();
それはすべてを再描画します...
ListBox
を継承し、RefreshItems()
を呼び出すパブリックメソッドを追加しました。これは必要な処理を実行します。すでに実装されており、すべて。彼らが公の方法を採用しなかった理由はわかりません。
BeginUpdateとEndUpdateを使用すると、問題が解決するはずです。データソースを2回設定する必要はありません
listBox1.BeginUpdate();
listBox1.DataSource = myList;
listBox1.EndUpdate();
ロードが完了する前に、特にリストボックスやその他のコントロールの変更を確認するためのWindowsフォームには注意が必要です。ロードされたデータを表示するには、invalidate();を使用します。次にUpdate();
これらのリンクが役立つ場合があります。
リストボックスアイテム(C#)を更新するにはどうすればよいですか? - http://arstechnica.com/civis/viewtopic.php?f=20&t=554717
ArrayListをListBoxにバインド--- http://www.Java2s.com/Tutorial/CSharp/0460__GUI-Windows-Forms/BindArrayListtoListBox.htm