Как изменить содержимое ListBox при нажатии на ListBoxItem?

#wpf #binding #listbox

#wpf #привязка #listbox

Вопрос:

У меня есть ListBox, и я хочу привязать его к общему списку с элементами моего типа (SubscribeUnit).

 List<SubscribeUnit> Subscribes = new List<SubscribeUnit>();
  

где

 class SubscribeUnit
{
   public string Title { get; set; }
   public string Link { get; set; }
   public string Description { get; set; }
   public Dictionary<FeedUnit, bool> Feeds = new Dictionary<FeedUnit, bool>();
}

class FeedUnit
{
   public string Title { get; set; }
   public string Link { get; set; }
   public string PubDate { get; set; }
   public string Descr { get; set; }
}
  

Когда я нажимаю на ListBoxItem (который отображает только свойство ‘Title’), ListBox должен изменить содержимое. Чтобы быть точным, теперь он должен хранить (только свойство ‘Title’) FeedUnit из Dictionary<FeedUnit, bool> Feeds = new Dictionary<FeedUnit, bool>();

Как я могу это сделать? Требуется любая помощь…

Ответ №1:

Создайте шаблон данных, который сам изменяется при нажатии на ListBoxItem.Свойство IsSelected становится истинным с помощью триггера.

Комментарии:

1. не могли бы вы привести пример, потому что я новичок в wpf… не так много опыта. Спасибо

2. @Pavlo Hodush Вы просматривали учебные пособия? Нет смысла писать код для вас, он будет намного полезнее, если вы попробуете его. Сначала попробуйте несколько простых сценариев для отдельных тем (например, те, которые вы можете найти в руководстве), только затем попытайтесь объединить полученные знания и попытаться найти решение вашей исходной проблемы.

3. да, я прочитал несколько руководств… Извините, просто я быстрее спрашиваю об этом, чтобы увидеть, что вы ссылаетесь на некоторые учебные пособия здесь

4. @Pavlo Hodush Кстати, у них даже есть пример IsSelected в руководстве по шаблону данных, который в значительной степени является тем, что вы ищете.