我有一个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.。
我做错了什么?
答案 0 :(得分:1)
在AutocompleteBox / ListBox / ComboBox中按值选择项目时,应确保所选值在项目列表中是唯一的(如某种ID),因为控件不知道选择哪个项目时有两个具有相同键属性的项目。因此它会将一个随机的(第一个,因为这实际上不是一个预期的用例)发送回viewmodel。
当我告诉你有两个可能的物品(“剑道套装”,“键盘”)时我会遇到同样的问题,我从中拥有一个以'K'开头的物品,你必须告诉我我的意思是哪个项目。
我希望我的例子足够容易理解;)