3

我有一个绑定到视图模型可观察集合的列表框:

这工作正常,减去一个小故障......假设可观察集合包含字符串,当具有相同值的条目被添加到集合中时,整个事情都会崩溃,处理这个问题的最佳方法是什么?自定义结构而不是字符串,然后是数据模板?

编辑:完全忘记解释行为......当我点击一个条目时,它会选择多个值,所有其他具有相同文本的值都会被选中。

4

1 回答 1

3

存在这个问题是因为它的 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" />
于 2009-10-23T19:20:01.713 回答