gpt4 book ai didi

c# - ObjectListView 高级搜索和过滤

转载 作者:太空宇宙 更新时间:2023-11-03 23:42:46 25 4
gpt4 key购买 nike

我正在尝试从 ObjectListView 组件搜索和过滤 TreeListView 对象的结果。目前,我正在将其实现到具有以下类的 C# (.NET 4.0) 项目中

MyAbstract、MyDir(继承 MyAbstract)和 MyFile(也继承 MyAbstract)。这些类具有以下属性:Name、Title、Speed、SpeedType。

我想知道如何正确地为这个列表创建一个类似查询的过滤器,例如:

Speed < 10 OR SpeedType == "RPM"

我可能会对它使用 LINQ,但我的主要问题是如何使用 TreeListView 应用和管理它。我的主要问题是:

  1. 如何在 TreeListView 上创建这种过滤?

  2. 如何让TreeListView只显示过滤后的结果

  3. 如何让它在保存原始列表时有一个清除过滤按钮。

这是我目前设置列表的方式:

public void Init()
{
Project.LoadDirectory();

treeListView1.SetObjects(new object[] { Project.Root });

treeListView1.CanExpandGetter = delegate(object x)
{
return (x is MyDir);
};

treeListView1.ChildrenGetter = delegate(object x)
{
return ((MyDir)x).Nodes;
};

olvColumn1.ImageGetter = new ImageGetterDelegate(this.TreeViewImageGetter);
}

我看过the documentation但我还是不清楚。

最佳答案

你试过什么?

这将过滤 TreeListView 以仅显示符合您在问题中给出的条件的 MyFile 对象:

this.treeListView.ModelFilter = new ModelFilter(delegate(object x) {
var myFile = x as MyFile;
return x != null && (myFile.Speed < 10 || myFile.SpeedType == "RPM");
});

要停止过滤,只需再次清除文件:

this.treeListView.ModelFilter = null;

项目附带的演示展示了所有这些行为。

关于c# - ObjectListView 高级搜索和过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28490741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com