在View中完成数据筛选,无需改变数据源的内容,这样就不必担心在其它地方也使用这个数据源。

从路由事件 TextBoxBase.TextChanged 中获取输入的文本,并设置视图的过滤器就可以了。

CollectionViewSource.GetDefaultView 方法是返回一个 ICollectionView 对象,它是给定源集合的默认视图,然后设置视图的Filter属性。

官方文档:如何:筛选视图中的数据

完整示例在我的Github

        <ComboBox Width="300" HorizontalAlignment="Center" VerticalAlignment="Center"
ItemsSource="{Binding DemoCollection, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:MainWindow}}}"
IsEditable="True" IsTextSearchEnabled="False"
TextBoxBase.TextChanged="ComboBox_TextChanged"/>
        private void ComboBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (sender is ComboBox comboBox)
{
var view = (CollectionView)CollectionViewSource.GetDefaultView(comboBox.ItemsSource);
view.Filter = f => f is string s && s.Contains(comboBox.Text);
}
}

Demo运行效果图

												

ComboBox过滤的更多相关文章

  1. EasyUI combogrid/combobox过滤时限制只能选择现有项

    在使用EasyUI的combogrid时可以通过输入进行过滤,达到快速选择的目的,但是手工输入不存在的项也不会出错,结果提交到数据库后就会产生错误. 比如idField是int型的,输入的数据通过是检 ...

  2. extjs_10_自己定义combotree组件

    1.项目截图 2.treedata.json { text : "root", expanded : true, expandable : true, children : [{ ...

  3. 根据拼音首字母进行过滤的combobox

    keywords: 拼音 首字母 过滤 在combobox中输入汉字拼音的首字母时,下面列出对应的可选项,就像下面这样 1. 首先在数据库中需要设计一个表,专门用来存放药物及对应的拼音首字母,这样当用 ...

  4. 【MVVM Dev】多个具有依赖性质的ComboBox对数据的过滤

    一.前言 在界面编程中,我们常常会遇到具有依赖性质的ComboBox框,比如最常见的: 省/直辖市 => 地级市/区 => 区/街道 今天就说一下在WPF的MVVM模式中如何实现该功能 二 ...

  5. easyui combobox可编辑的情况下,只能首字母开始过滤的问题选项

    esayui中的combobox下拉列表在可编辑的情况下可以输入内容来过滤下拉框的选项,而1.4.2版本只能在从首字母开始过滤例如其中一个选项是"test", 只能输入" ...

  6. 重写combobox模板,实现支持过滤的combobox

    先看效果图 客户提出需求后,首选在百度查找可靠方案 看了几个,效果都不理想, 大多是把isEditNable设置成true,IsTextSearchNable设置成false 再对itemsSourc ...

  7. EasyUI combobox下拉列表实现搜索过滤(模糊匹配)

    项目中的某个下拉列表长达200多个项,这么巨大的数量一个一个找眼镜都得看花,于是就得整了个搜索功能.看网上别人帖子有只能前缀匹配的方案,但只能前缀匹配的话用起来也不是很方便.于是就记录一下模糊匹配的方 ...

  8. 带搜索的ComboBox

    带搜索的ComboBox就是给ComboBox一个依赖属性的ItemSource,然后通过数据源中是否包含要查询的值,重新给ComboBox绑定数据源. public class EditComboB ...

  9. 【EasyUI】combotree和combobox模糊查询

    这里说的模糊查询指在输入框输入,然后自动在下拉框中显示匹配结果,类似Google搜索提示 EasyUI库已经实现了combobox的查询过滤功能,但只能从头匹配,原因是EasyUI库的代码限制: fi ...

随机推荐

  1. WPF 实现水纹效果

    原文:WPF 实现水纹效果 鼠标滑过产生水纹,效果图如下:     XMAL就放置了一个img标签   后台主要代码 窗体加载: private void Window_Loaded(object s ...

  2. Apache和Tomcat的整合

    1.web架构 首先上图,解释web通用架构 通常情况下分为三大块 : ★ Web server :  通常情况下由 Apache Http Server  . IBM Http Server  .I ...

  3. POJ - 2991 Crane (段树+计算几何)

    Description ACM has bought a new crane (crane -- jeřáb) . The crane consists of n segments of variou ...

  4. [ 转]Node.js模块 require和 exports

    什么是模块? node.js通过实现CommonJS的Modules/1.0标准引入了模块(module)概念,模块是Node.js的基本组成部分.一个node.js文件就是一个模块,也就是说文件和模 ...

  5. H3C交换机配置ACL禁止vlan间互访

    1.先把基础工作做好,就是配置VLAN,配置Trunk,确定10个VLAN和相应的端口都正确.假设10个VLAN的地址分别是192.168.10.X,192.168.20.X......192.168 ...

  6. sql 多列求和

    列相加即可注意Null不可加,先用ISNULL方法验证,设置默认值 SELECT ID, Name, Province, City, District, ISNULL(row1, 0), ISNULL ...

  7. Expander

    实现折叠列表的效果 <Expander Header="水果列表"> <StackPanel> <RadioButton Content=" ...

  8. DotNetBar for Windows Forms 14.0.0.3_冰河之刃重打包版原创发布

    关于 DotNetBar for Windows Forms 14.0.0.3_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...

  9. wpf 快速建立可以拖动对象

    1.引用两个.net 程序集 2.xaml name space导入 xmlns:i ="http://schemas.microsoft.com/expression/2010/inter ...

  10. Tinyhttpd for Windows(学习型的项目,才500多行代码)

    前言 TinyHTTPd是一个开源的简易学习型的HTTP服务器,项目主页在:http://tinyhttpd.sourceforge.net/,源代码下载:https://sourceforge.ne ...