【发布时间】:2015-05-05 02:10:43
【问题描述】:
以下面的简单文本框为例:
<ComboBox IsEditable="True" SelectedItem="{Binding}">
<ComboBoxItem>Angus/ComboBoxItem>
<ComboBoxItem>Jane</ComboBoxItem>
<ComboBoxItem>Steve</ComboBoxItem>
</ComboBox>
我想让用户通过输入名称来找到他们的选择,所以我将 IsEditable 设置为 true。绑定到 SelectedItem 的属性的可接受值是列表中的任何一个选项,或者没有选择 (null)。问题是,如果有人键入不在列表中的名称,默认情况下不会显示错误提示。
例如:用户可以键入“Bob”,导致 SelectedItem 属性为 null,但没有意识到 Bob 不存在于列表中。相反,我想在 ComboBox 的 Text 属性不是 null 或为空且 SelectedItem 为 null,然后阻止他们再输入?
我最初的想法是自定义验证规则,但我不知道如何访问组合框的 Text 和 SelectedItem 属性。
【问题讨论】:
-
我的 WPF 老师在课程中重复了数十次的提示:在 WPF 中,您永远不应该明确使用 SelectedItem。这就是集合视图的用途。
标签: wpf validation combobox