首页 > 解决方案 > 具有过滤器功能的组合框 - 在“组合框”类型中找不到可附加属性

问题描述

我目前有一个用 MVVM 架构编写的小型应用程序。我有以下文件夹结构。命令、模型、视图模型的文件夹,最后是我的视图的文件夹。我正在尝试在我的 DataGrid 中实现一个 Combobox,它有一个下拉列表,可以根据我在该 Combobox 中输入的文本过滤列表。我想我已经找到了在这篇文章中发布的解决方案但是当我实施它时它对我不起作用。我讨厌为此提出另一个问题,但不幸的是,由于缺乏声誉,我无法评论该帖子。

我实现代码的方式是我创建了两个类 ComboBox.cs 和 Extensions.cs(不在任何命名空间或文件夹中),并按原样复制粘贴上面链接中的代码。然后我去了我已经工作的DataGrid的xaml并添加了

ComboBox.IsFilterOnAutocompleteEnabled="True"

正如链接中的解决方案所建议的那样。这是 DataGrid 的一部分的我的 xaml:`

                <DataGridTemplateColumn.CellEditingTemplate>
                    <DataTemplate>
                        <ComboBox IsEditable="True" DisplayMemberPath="Name"  SelectedValuePath="Name" ComboBox.IsFilterOnAutocompleteEnabled="True"
                        Text="{Binding Name,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
                        ItemsSource="{Binding Path=DataContext.CombosAndLoadCasesList, RelativeSource={RelativeSource AncestorType={x:Type Window}}}"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellEditingTemplate>

                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Name}" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>` 

有一条关于 ComboBox 的类名不应称为 ComboBox 的评论,所以我将其更改为其他名称,但仍然无法使其工作。这是我收到的错误消息:

严重性代码描述项目文件行抑制状态错误 XLS0415 在类型“组合框”中找不到可附加属性“IsFilterOnAutocompleteEnabled”。组合 ComboInfoUI.xaml 49

严重性代码 描述 项目文件行抑制状态错误 XDG0012 成员“IsFilterOnAutocompleteEnabled”无法识别或不可访问。组合 ComboInfoUI.xaml 49

标签: c#wpfxamlcombobox

解决方案


推荐阅读