我需要实现一个可编辑的组合框,用户可以在其中从数据/表中选择现有值。它需要可编辑,因为用户还可以通过在可编辑组合框中输入新值来向表中添加新行,因此我将 AutoCompleteBox 控件放入我的页面中,但我找不到任何有关如何实现此类功能的示例。它应该在可编辑的下拉列表中显示类似员工姓名的内容,同时让 SelectedValue 属性包含员工 ID。
任何帮助将不胜感激。
干杯!
我需要实现一个可编辑的组合框,用户可以在其中从数据/表中选择现有值。它需要可编辑,因为用户还可以通过在可编辑组合框中输入新值来向表中添加新行,因此我将 AutoCompleteBox 控件放入我的页面中,但我找不到任何有关如何实现此类功能的示例。它应该在可编辑的下拉列表中显示类似员工姓名的内容,同时让 SelectedValue 属性包含员工 ID。
任何帮助将不胜感激。
干杯!
您需要将自动完成框的 ItemsSource 绑定到“查找”集合。您可以使用 ValueMemberBinding 来解析要查找的文本输入,即,如果您有人员列表,请将其绑定到 Model.Name 像 {Binding Name} 这样按名称查找人员。
至于下拉项目,您可以使用模板以您喜欢的方式显示项目。 这是一个很好的主题,您想要设置 ItemTemplate 的样式。按照示例,您将在 ItemsTemplate 元素内的 xaml 中创建一个数据模板,添加一个 Textblock 并将其 Text 属性绑定到 Name,如 {Binding Name}。
这是一个很好的示例,其中自动完成框的样式类似于组合框。您可以扩展它以在 TextChanged 上查找“输入”并检查该项目是否包含在 ItemsSource 中。如果不是,它可以将新值推送到服务器(如果您进入 MVVM,您可以在 ViewModel 上发出一个命令,该命令会将添加委托给服务器并更新项目)。
这是另一个扩展 AutoCompleteBox 以用作预先输入 ComboBox 的示例。它可以使用 DP 处理外键/查找 id,并且可以在 MVVM 场景中使用。 Silverlight 的自动完成组合框