Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何在Visual Basic中过滤没有任何数据库的GridView_Vb.net_Gridview_Collections - Fatal编程技术网

Vb.net 如何在Visual Basic中过滤没有任何数据库的GridView

Vb.net 如何在Visual Basic中过滤没有任何数据库的GridView,vb.net,gridview,collections,Vb.net,Gridview,Collections,我在互联网上做了很多研究,在VB.NET中找到了很多关于“如何过滤/排序GridView”的教程,但是,所有的主题都使用了数据库 就我而言,我只有这些: MP3Song:一个自定义类,具有“Title”、“Artist”、“Duration”等属性 一个列表(MP3Song):它链接到我的GridView,如下所示: myMP3Collection=新列表(MP3Song.MP3Song) mp3songbindingsource.DataSource=myMP3Collection 我使用

我在互联网上做了很多研究,在VB.NET中找到了很多关于“如何过滤/排序GridView”的教程,但是,所有的主题都使用了数据库

就我而言,我只有这些:

  • MP3Song:一个自定义类,具有“Title”、“Artist”、“Duration”等属性
  • 一个列表(MP3Song):它链接到我的GridView,如下所示:
myMP3Collection=新列表(MP3Song.MP3Song)

mp3songbindingsource.DataSource=myMP3Collection

我使用的是
列表(Of…
),因为当我填充此列表时,我会进行一些验证,并且可能会修改一些“已添加”的数据。这对我来说很容易:

myMP3Collection.ElementAt(i).Extd=True'Extd是一个布尔属性,其他属性是字符串…

在我的研究中,我发现我应该使用数据集(更容易过滤/排序GridView)。 我的问题是:

  • 我是否应该基于我的集合创建一个
    数据集
    (为每个填充一个
    ,扫描我的列表,并将
    中的所有项目添加到我的表中
  • 或者我应该尝试直接填充
    数据集而不是
    ListOf()
    。如果第二种选择更好,那么访问和修改行中的元素是否与集合一样容易
  • 谢谢您的时间:)

    蒂姆·范·沃森霍夫的正是您需要的。他将(T的)列表扩展为可排序的绑定列表和过滤器列表


    虽然他的代码是C#,但您可以轻松使用在线转换器。或者,创建一个C#.DLL,使用代码,并从VB.NET应用程序中引用该.DLL。

    您的标题询问如何在没有数据库的情况下进行筛选,您的问题是询问如何设置数据集。您想要哪一种?如果DataSet是最佳方式,如何设置它以及如何访问特定行中的数据。您可以使用linq:
    mp3songbindingsource.DataSource=myMP3Collection.Where(Function(x)x.Artist=“U2”)。ToList
    谢谢!在VB.Net中正确地从Tim Van Wassenhove(FilterList和SortableBindingList)导入所有C#library对我来说有点棘手,但它可以工作!这是一个多么简单的过滤我的数据的方法!!!我只需要在
    TextChanged
    事件中执行以下操作:
    MP3FilterList.Filter(函数(MP3Song)MP3Song.Title.Contains(FilterTextBox.Text))