没有数据源的DataGridView搜索和过滤

本文关键字:搜索 过滤 DataGridView 数据源 | 更新日期: 2023-09-27 18:01:32

我有datagridview,我用手动填充它,我从目录中获取文件名。但我想搜索和过滤它。这可能吗?我已经试图找到一些样本,但他们都与数据源搜索。

这是我如何填充datagridview的代码;

string folderPath = @"C:'Users'TULPAR'Desktop'elektrik projesi'proje'dosyalar'";
fileName.DataSource = new System.IO.DirectoryInfo(folderPath).GetDirectories();

谢谢。

没有数据源的DataGridView搜索和过滤

可能有更好的方法,但一种可能性是简单地应用Linq where语句来刷新您的DataSource。例如:

private string folderPath = @"C:'Users'TULPAR'Desktop'elektrik projesi'proje'dosyalar'";
public Form1()
{
    this.InitializeComponent();
    this.dataGridView1.DataSource = new System.IO.DirectoryInfo(this.folderPath).GetDirectories();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
  var src = new System.IO.DirectoryInfo(this.folderPath).GetDirectories().Where(di => di.Name.StartsWith(this.textBox1.Text)).ToArray();
  this.dataGridView1.DataSource = src;
}

在这里,我使用TextBox.TextChanged事件来过滤条目,只有那些Name以我在TextBox中的输入开始的条目。我也可以把我的条件改为di.Name.Contains(...)。凑巧的是,当清空TextBox时,将显示所有目录。

您可以使用不同的事件,或者根本不使用事件,这取决于您希望如何完成此操作。条件也取决于你。一般的想法是将您的DataSource重置为同一源的过滤版本。