Составьте список, чтобы понять, какой элемент выбран c#

Я застрял.

У меня есть 2 разных списка, listview1 содержит имя, а listview2 показывает эпизоды с именем, которое я выбрал в listview1.

Проблема в том, что я хочу иметь описание в метке конкретного эпизода, который я выбираю в списке2.

Прямо сейчас у меня все эпизоды упорядочены в listview2, и просто для тестирования я сделал listview3, который показывает все описания в списке.

я беру информацию и использую

Получить описания. Но проблема в том, что я не знаю, как связать правильный эпизод с правильным описанием. Кто-нибудь делал что-то подобное раньше?

Прямо сейчас я просто просматриваю список и заставляю его отображаться в listview3, но это неправильно.

Чтобы получить эпизоды из URL-адреса в список, который я использую

В списках нет выбора. Это Элемент пользовательского интерфейса, у которого есть выбранные пользователем элементы. Все элементы управления, позволяющие выбирать, имеют свойство SelectedItem или что-то подобное.

Panagiotis Kanavos 26.10.2018 08:56

Стек Какие вы используете? Winforms? WPF? Оба обеспечивают привязку данных, выбор и несколько свойств. Но они используют разные механизмы. В обоих случаях вы должны создать список объектов ID, Title, Detailодин и привязать к нему элемент управления.

Panagiotis Kanavos 26.10.2018 08:59

Я использую winforms (извините)

MrObama 26.10.2018 09:04

Но как я могу создать список идентификаторов, я не понимаю, как я могу сделать RSS-информацию уникальной для каждого эпизода, а затем сказать ярлыку, чтобы он отображал описание для конкретного эпизода, который я выбрал.

MrObama 26.10.2018 09:07
0
4
83
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Можете ли вы просто сделать это:

lvEpisode.Where(x=> x.Name == NameListView.SelectedItem).Select(x=>x.Name).FirstOrDefault();

Предполагается, что у вас есть класс элемента, содержащий имя.

(При вводе через мобильный телефон может не скомпилироваться):

Ответ принят как подходящий

Пройдитесь по элементам один раз и обновите оба списка.

      foreach (SyndicationItem episode in feed.Items)
      {

          var episodeName = episode.Title.Text;
          var episodeDesc = episode.Summary.Text;

          podcastEpisodes.Add(episodeName);
          episodeDescription.Add(episodeDesc);
      }

Для установить выбранный элемент в списке вы можете установить его состояние выбора / фокуса.

Это было очень хорошо. Но как я должен установить EpisodeDesc на метку (где я хочу, чтобы отображалось описание). Я новичок в этом ..

MrObama 26.10.2018 10:16

Должно быть что-то вроде myLabel.Text = x. Сложно сказать без кода.

Carra 26.10.2018 10:23

Можно ли преобразовать описание серии из списка в словарь? Ключом будет эпизод, а значением - описание. Когда пользователь выбирает эпизод, вам просто нужно проиндексировать словарь, чтобы получить описание?

pastebin.com/Bi7ic5Er, вот тут я вставил в словарь и эпизод, и описание. Но теперь я хочу выбрать эпизод в списке, а затем просмотреть словарь и найти нужный ключ, а затем вставить описание на этикетку, но я не знаю, как это исправить.
MrObama 26.10.2018 11:06

поэтому в представлении списка эпизодов должно быть запущенное событие (list_changed), говорящее, что значение изменилось. В этом случае выполните следующие действия, извлеките значение. Затем проиндексируйте словарь, чтобы найти описание. Наконец, установите метку на текст.

Nikesh P4tel 26.10.2018 14:34

Вот пример кода (нет визуальной студии, поэтому могут быть синтаксические ошибки) private void listView1_SelectedIndexChanged(object sender, EventArgs e) { if(this.listView1.SelectedItems.Count == 0) return; string episode = this.listView1.SelectedItems[0].Text; string description = dictionary[episode]; this.label1.Text = description; }

Nikesh P4tel 26.10.2018 14:47

поскольку вы получаете данные в формате xml, попробуйте выполнить синтаксический анализ как JSON, и информация, скорее всего, будет структурирована. поэтому индекс, который вы используете для своих эпизодов, также следует использовать для индексации описания. так что JSON вроде

movies={name: "Walking Dead" ,
    category: "Horror",
    episode:"episode1",
    description:"walkers rise again"};

так что теперь вы можете получить фильмы ["эпизод"]; и фильмы ["описание"] легко.

Это онлайн-парсеры, которые вы можете поместить в xml и преобразовать в JSON, а также пакеты для C#, я думаю, но поместите xml ЗДЕСЬ и посмотрите, как изменится структура.

Другие вопросы по теме