Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как скрыть элементы в ListBox? 
:(
    Опции темы
V0fka
Дата 14.4.2016, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Привет!

Есть ListBox, который биндится к ObservableCollection<T>. В типе Т имеется свойство P, которое содержит какой-то текст.
Есть TextBox, в который вводится какой-то текс.

Хочу сделать, чтобы по ходу ввода текста в TextBox, в ListBox-е скрывались элементы, которые в T.P не содержат введенного текста. На данном этапе не знаю, как в принципе можно скрыть какие-то элементы. Скажем, просто хочу скрыть 2 и 5 элемент.

Подскажите, пожалуйста, как такое сделать?
PM MAIL   Вверх
V0fka
Дата 18.4.2016, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Актуально
PM MAIL   Вверх
shmarov
Дата 6.7.2016, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 15.6.2007
Где: 1001101 region

Репутация: нет
Всего: 1



Если нужно, чтобы видимость элементов менялась при вводе текста в текстбокс без потери им фокуса - нужно в Binding на него установить признак UpdateSourceTrigger=PropertyChanged
После в самом свойстве, которое биндится на текстбокс при обновлении значения внедрить логику, которая определяет видимость элементов коллекции. Например, как-то так (пример не из студии, могут быть ошибки):
Код

public string Text
{
   get { return _text; }
   set 
   {
      if (!_text.Equals(value))
      {
         _text = value;
         RaisePropertyChanged();
         RefreshCollection();
      }
   }
}

//Скрыть четные элементы коллекции, если введено четное количество символов
void RefreshCollection()
{
   _list.Where(p1 => _list.IndexOf(p1) % 2 == 0).ToList().Foreach(p1 => p1.Visible = Text.Length % 2 == 0);
}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.1203 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.