Когда я вижу это сообщение Here.Перезагрузка Содержимое списка
Однако в моем коде я не вижу DataBind()
Метод.
lstBox.DataBind();
Как перезагрузить listbox
в C# .Net?
Refresh()
Метод также не работает.
Когда я вижу это сообщение Here.Перезагрузка Содержимое списка
Однако в моем коде я не вижу DataBind()
Метод.
lstBox.DataBind();
Как перезагрузить listbox
в C# .Net?
Refresh()
Метод также не работает.
Вы можете попробовать использовать ObservableCollection как ItemSource, и все это делается автоматически. Ваша задача состоит в том, чтобы заполнить элементы в ObservableCollection, нет необходимости вручную обновлять.
DataBind() предназначен для элементов управления ASP.NET - насколько я знаю, для элементов управления Windows Forms нет эквивалентного метода. Что такое источник данных для вашего списка? Я помню, что у меня была аналогичная проблема, и я решил проблему, привязав свой контроль к объекту BindingSource вместо того, что я использовал. Аналогично, вам может понадобиться привязать ваш Listbox к BindingSource вместо текущего источника данных. От MSDN:
Компонент BindingSource выполняет множество задач. Во-первых, он упрощает привязки элементов управления к форме, предоставляя управление валютой, уведомление об изменении и другие сервисы между элементами управления Windows Forms и источниками данных.
Другими словами, как только вы сделаете изменения в BindingSource (например, вызова BindingSource.Add, или установив свойство DataSource в BindingSource к другой коллекции), ваш ListBox будет автоматически обновляться без необходимости называть «DataBind() "- как метод.
Если ListBox в настоящее время привязан к объекту коллекции, вы можете просто связать свою коллекцию в BindingSource вместо, а затем связать свой контроль в BindingSource:
BindingSource.DataSource = ListboxItems;
ListBox.DataSource = BindingSource;
В качестве альтернативы вы можете вручную построить содержимое поля BindingSource:
MyBindingSource.Clear();
MyBindingSource.Add(new BusinessObject("Bill", "Clinton", 1946));
MyBindingSource.Add(new BusinessObject("George", "Bush", 1946));
MyBindingSource.Add(new BusinessObject("Barack", "Obama", 1961));
lstBox.DataSource = MyBindingSource;
Под «перезагрузкой», вы имеете в виду обновление привязки данных к списку? – David
Да, я извлекаю данные из базы данных и хочу перезагрузить, когда пользователь вводит текст в текстовом поле. –