我需要实现一个可编辑的组合框,用户可以从数据/表中选择现有值。它需要可编辑,因为用户还可以通过在可编辑组合框中输入新值来向表中添加新行,因此我将 AutoCompleteBox 控件放入我的页面中,但我找不到任何有关如何实现此类功能的示例。它应该在可编辑下拉列表中显示类似“员工姓名”的内容,同时让 SelectedValue 属性包含员工 ID。

任何帮助将非常感激。

干杯!

有帮助吗?

解决方案

您需要将自动完成框的 ItemsSource 绑定到“查找”集合。您可以使用 ValueMemberBinding 来解析要查找的文本输入,即,如果您有一个人员列表,请将其绑定到 Model.Name,例如 {Binding Name} 以按姓名查找人员。

至于下拉项目,您可以使用模板以您喜欢的方式显示项目。赫雷斯 关于这个主题的一个很好的评论,您想要设置 ItemTemplate 的样式。根据示例,您将在 ItemsTemplate 元素内的 xaml 中创建一个数据模板,添加一个 Textblock 并将其 Text 属性绑定到名称,如 {Binding Name}。

这里 一个很好的例子,其中自动完成框的样式类似于组合框。您可以扩展它以在 TextChanged 上查找“enter”并检查该项目是否包含在 ItemsSource 中。如果没有,它可以将新值推送到服务器(如果您使用 MVVM,您可以在 ViewModel 上发出一个命令,将添加委托给服务器并更新项目)。

其他提示

下面是一个扩展AutoCompleteBox用作一个预先输入组合框的另一示例。它可以处理使用移民外键/查找IDS,可以在MVVM场景中使用。 自动完成组合框为Silverlight

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top