C# 在类型';组合框';

C# 在类型';组合框';,c#,wpf,xaml,combobox,C#,Wpf,Xaml,Combobox,我目前有一个用MVVM架构编写的小应用程序。我有以下文件夹结构。用于命令、模型、视图模型的文件夹,最后是用于“我的视图”的文件夹。我试图在我的DataGrid中实现一个组合框,它有一个下拉列表,根据我在该组合框中输入的文本过滤列表。我想我已经找到了在本文中发布的解决方案,但是当我实现它时,它对我不起作用。我不想再提出一个问题,但不幸的是,由于缺乏声誉,我无法对这篇文章发表评论 我实现代码的方式是创建了两个类ComboBox.cs和Extensions.cs(不在任何名称空间或文件夹中),并按原样

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

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

ComboBox.IsFilterOnAutocompleteEnabled=“True”

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


` 
有一条评论说ComboBox的类名不应该被称为ComboBox,所以我把它改成了其他名称,但我仍然无法使它工作。这是我收到的错误消息:

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

严重性代码说明项目文件行抑制状态 错误XDG0012无法识别或无法访问成员“IsFilterOnAutocompleteEnabled”。Combonito ComboInfoUI.xaml 49


我认为语法是:yournamespaceWhere yourExtensionLifes:ClassName.IsFilterOnAutocompleteEnabled=“True”,您必须在定义所有名称空间的XAML顶部定义此名称空间。单独的命令文件夹有点奇怪。我希望在其拥有的viewmodel中看到一个命令。可能引用注入的服务或包装某些东西会调用端点。Viewmodels通常也是视图特定的,所以我通常会有一个包含视图和viewmodel的逻辑分组文件夹。@Andy我对MVVM还是新手,这是我在一个在线教程中看到的。我目前有两个视图,它们使用相同的视图模型(我的应用程序不需要为我的两个独立视图调用两个独立的视图模型)。My commands类不包含任何显示的信息,因此为什么它会在自己的viewmodel中?@Klamsi如果ComboBox和扩展类不在任何名称空间中,该怎么办。这是不是意味着它们在任何地方都可以访问,或者我必须设置datacontext?
                <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>`