У меня есть listBox, который содержит элементы со значениями из двух отдельных списков NameList
& DescriptionList
.
, когда я выбираю элемент, он отображает некоторую информацию, такую как «имя» и «описание» из элементав выбранном индексе.
Если я удаляю одну строку сверху, все строки будут портиться по индексу и будут показывать неправильные значения.Можете ли вы обновить индекс list<string>
?
Я пытался использовать Label.Content = NameList[listBox.SelectedItem];
, но он просто дает аргумент 1: невозможно преобразовать из 'object' в 'int'.
Редактировать 1
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
List<string> CallNameList = Control.NameList;
List<string> CallDescList = Control.DescriptionList;
if (listBox.SelectedIndex < 0)
{
TextLabel.Text = "Please select another item";
}
else
{
TitelLabel.Content = CallNameList[listBox.SelectedIndex];
TextLabel.Text = CallDescList[listBox.SelectedIndex];
}
}
Как вы можете видеть в первой сцене, у меня есть номера 1-2-3-4.Здесь он отображает 1, когда я выбрал 1.
Однако, когда я удаляю 1 и затем выбираю 3, как на рисунке, он выводит это как 2
Это потому, что индекс падает на единицу для всех.Создание объекта 3 -> объект 2 и т. Д.
Как я могу решить эту проблему?