Проблемы с использованием ListBox и наблюдаемой коллекции в качестве журнала отладки - PullRequest
3 голосов
/ 23 октября 2009

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

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

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

1 Ответ

3 голосов
/ 23 октября 2009

Эта проблема существует из-за природы элемента управления, производного от 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" />
...