wpf ObservableCollection筛选功能
viewmodel中定义原始数据及筛选后的数据,筛选后的数据类型为ICollectionView
//原始数据列表
public ObservableCollection<SchoolOutDto> SchoolList { get; set; }
/// <summary>
/// 筛选数据后的列表
/// </summary>
public ICollectionView FilterSchoolList { get; set; }
//输入框绑定的值
public string SchoolText
{
get => schoolText; set
{
schoolText = value;
//根据筛选的名称刷新列表
FilterSchoolList.Refresh();
}
}
在原始数据获取到数据后绑定筛选后的数据
FilterSchoolList = CollectionViewSource.GetDefaultView(SchoolList);
FilterSchoolList.Filter = Filter; //此处的Filter为一个回调函数
Filter
private bool Filter(object obj)
{
var m = obj as SchoolOutDto;
if (string.IsNullOrEmpty(SchoolText) )
{
return true;
}
//输入框与选择的列表一致时重置列表(此时为选择了某条数据直接重置)
if (SelectedSchool != null && SelectedSchool.schoolName==SchoolText)
{
return true;
}
if (m.schoolName.Contains(SchoolText))
{
return true;
}
return false;
}
留待后查,同时方便他人
联系我:renhanlinbsl@163.com
联系我:renhanlinbsl@163.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具