binding - WPF 将 ObservableCollection 绑定到 AutoCompleteItemsSource
问题描述
我正在尝试将自动完成功能添加到我的 Datagrid 文本框列“名称”中,因此我在以下位置使用 NuGet:https ://github.com/Nimgoble/WPFTextBoxAutoComplete
我的 xml 代码是这样的:
<DataGridTextColumn x:Name="nameColumn" Width="100" Binding="{Binding Name}" Header="Name">
<DataGridTextColumn.EditingElementStyle>
<Style TargetType="{x:Type TextBox}">
<Setter Property="behaviors:AutoCompleteBehavior.AutoCompleteItemsSource"
Value="{Binding ItemsList, RelativeSource={RelativeSource AncestorType=DataGrid}}" />
<EventSetter Event="TextChanged" Handler="TextBox_TextChanged"/>
</Style>
</DataGridTextColumn.EditingElementStyle>
其中 ItemsList 在代码中初始化为:
ObservableCollection<String> ItemsList;
它将在以下处理程序下的每个 textchanged 事件上更新:
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
ItemsList = new ObservableCollection<string>();
string tmp = (sender as TextBox).Text;
if (tmp != "")
{
DataTable dt = sq.GetItemInvByName(tmp);
if (dt != null)
{
foreach (DataRow dr in dt.Rows)
{
ItemsList.Add(dr["Name"].ToString());
}
}
}
}
但是当我运行我的代码时,什么也没有发生,没有显示任何建议,有人能告诉我我想念什么吗?任何帮助将不胜感激
解决方案
推荐阅读
- python - 使用另一个数组给出的索引替换 NumPy 数组中的值
- javascript - 如何在选择匹配的响应式图像文件时替换 div 的背景图像?
- actionscript-3 - 你能解释一下 as3 随机交换形状的位置吗
- c - 为什么字符 '*' 在这个 RPN 计算器中执行乘法运算,但是如果我使用符号 x 来表示乘法它可以正常工作?
- jquery - 如何从一个字符串中的所有项目中获取数据值
- spring-boot - 我想在 Spring Boot 集成测试中创建 bean 之前模拟服务器
- c# - 在 RasPi 3 上发送 UDP 广播
- r - 从字符串中提取特定的文本数据
- java - 如何使用 Apache Beam (KafkaIO) 反序列化 avro 数据
- java - 从 url 读取响应