Проблемы с использованием ListBox и наблюдаемой коллекции в качестве журнала отладки.

StackOverflow https://stackoverflow.com/questions/1615100

Вопрос

У меня есть список, привязанный к наблюдаемой коллекции модели представления:

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

редактировать:совсем забыл объяснить поведение...он выбирает несколько значений, когда я нажимаю на одну запись, все остальные значения с тем же текстом выбираются.

Это было полезно?

Решение

Эта проблема существует, потому что это природа элемента управления, производного от 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" />
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top