Проблемы с использованием ListBox и наблюдаемой коллекции в качестве журнала отладки.
-
06-07-2019 - |
Вопрос
У меня есть список, привязанный к наблюдаемой коллекции модели представления:
Все работает отлично, за исключением одной маленькой заминки...предполагая, что наблюдаемая коллекция содержит строки, все это ломается, когда в коллекцию добавляются записи с одинаковыми значениями, как лучше всего с этим справиться?Пользовательская структура вместо строк, а затем шаблон данных?
редактировать:совсем забыл объяснить поведение...он выбирает несколько значений, когда я нажимаю на одну запись, все остальные значения с тем же текстом выбираются.
Решение
Эта проблема существует, потому что это природа элемента управления, производного от Selector.Когда вы начинаете выбирать элемент из типа ObservableCollection и ваша коллекция содержит повторяющиеся строки, селектор не понимает, какой элемент он выбрал.Вам нужно создать новый простой класс/структуру и поместить туда свою строку.
public class Info
{
public string Name { get; set; }
}
// ..
MyList = new ObservableCollection<Info>(new List<Info> { new Info { Name = "Hello World" }, new Info { Name = "Hello World" }, new Info { Name = "Hello World" } });
и вот так.
<ListBox ItemsSource="{Binding MyList}" DisplayMemberPath="Name" />