自动填充框selecteditem不准确

时间:2012-01-13 19:59:04

标签: c# wpf wpftoolkit

我有一个WPF应用程序,并且正在使用VS 2008中的WPF工具包自动完成框。我收到了SelectedItem属性的不一致结果。

我的ItemSource数据如下(在对象中)

Address X - Person A
Address X - Person B

所以它的两个记录,具有相同的地址,但每个记录都列出了不同的人。我在自动填充框中的搜索是按地址(也是我的ValueMemberPath)。因此,当输入地址X时,这两个名称都会弹出,没有问题。但是,如果我从下拉列表中选择Person B(即第二条记录),则SelectedItem属性始终是Person A的对象。无论我如何选择记录或不记录,SelectedItem始终是Person A,I永远不能让SelectedItem返回Person B.。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

在AutocompleteBox / ListBox / ComboBox中按值选择项目时,应确保所选值在项目列表中是唯一的(如某种ID),因为控件不知道选择哪个项目时有两个具有相同键属性的项目。因此它会将一个随机的(第一个,因为这实际上不是一个预期的用例)发送回viewmodel。

当我告诉你有两个可能的物品(“剑道套装”,“键盘”)时我会遇到同样的问题,我从中拥有一个以'K'开头的物品,你必须告诉我我的意思是哪个项目。

我希望我的例子足够容易理解;)