Wpf Combobox限制列表

时间:2009-11-09 14:46:03

标签: validation combobox wpf-controls

我们正在使用Wpf Combobox来允许用户执行以下操作: 1)通过键入前几个字符来选择项目 2)通过过滤列表自动完成输入 3)建议第一项与输入所选项目的字母相匹配

当用户输入不在列表中的字符时,挑战是处理场景。这应表明用户犯了错误或想要输入新项目 Combobox绑定到自定义类型,并且它们具有与使用选择填充的属性关联的验证规则。我们无法弄清楚如何识别用户何时输入NOT IN THE LIST中的条目并将绑定属性设置为将触发验证的无效值。

当用户输入不代表列表中项目的字符串时,selecteditem将变为空。由于selecteditem为null,因此WPF无法识别绑定到表单datacontext对象的属性路径,因此绑定失败。然后,业务对象保留之前设置的值,并且不会获得新值。

1 个答案:

答案 0 :(得分:4)

现在我花了半个小时调查类似的问题,答案很简单:评估ComboBox的SelectedItemText属性。如果用户未从列表中选择值,则所选项目将为null;在这种情况下,文本将包含用户的输入。根据您的需要,您可以使用绑定到一个或两个属性,也可以在后面的代码中对它们进行评估。