В настоящее время я пытаюсь применить фильтр к wxCheckListBox (для поиска определенных элементов). До сих пор я понятия не имею, как это сделать. Проблема заключается в том, что я не хочу иметь копию элемента управления и всегда удалять ненужные элементы из копии, и как только поиск изменится, его нужно скопировать из оригинала и снова удалить элементы, Мне было интересно, есть ли способ просто скрыть некоторые элементы, а не весь элемент управления
Вы не можете скрыть элементы в wxListBox
или wxCheckListBox
. Чтобы иметь такой динамический контроль над элементами, wxListCtrl
в wxListCtrl
управления, вам нужно использовать wxListCtrl
в виртуальном режиме.
Однако обычно не проблема удалить некоторые элементы из wxListBox
а затем вставить их обратно (или, что еще проще, сохранить все элементы, удалить некоторые из них из элемента управления, а затем, чтобы вернуть, очистить элемент управления и восстановить все первоначально сохраненные элементы).
wxListBox
для такого количества элементов, вместо этого используйтеwxListCtrl
в виртуальном режиме илиwxDataViewCtrl
которые позволяют вам возвращать только те элементы, которые действительно необходимы (т.е. отображаются в данный момент на экране) по требованию.