wpf - 在文本框上过滤 DataGrid

标签 wpf datagrid wpfdatagrid

我搜索示例或示例以按文本框过滤 WPF DataGrid 列元素。

alt text

类似于 this 的东西(给定的示例使用 WPFToolkit ......显然被微软放弃了......)

XAML

<Canvas>
    <DataGrid Height="200" Name="dataGrid1" Width="200" Canvas.Top="23" />
    <TextBox  Name="textBox1" Width="120" />
</Canvas>

CS:
public partial class MainWindow : Window
{
    private List<Personne> persons;
    ICollectionView cvPersonnes;

    public MainWindow()
    {
        InitializeComponent();

        persons = new List<Personne>();

        persons.Add(new Personne() { Id = 1, Nom = "Jean-Michel", Prenom = "BADANHAR" });
        persons.Add(new Personne() { Id = 1, Nom = "Gerard", Prenom = "DEPARDIEU" });
        persons.Add(new Personne() { Id = 1, Nom = "Garfild", Prenom = "THECAT" });
        persons.Add(new Personne() { Id = 1, Nom = "Jean-Paul", Prenom = "BELMONDO" });

        cvPersonnes = CollectionViewSource.GetDefaultView(persons);

        if (cvPersonnes != null)
        {
            dataGrid1.AutoGenerateColumns = true;
            dataGrid1.ItemsSource = cvPersonnes;
            cvPersonnes.Filter = TextFilter;
        }
    }

    public bool TextFilter(object o)
    {
        Personne p = (o as Personne);
        if (p == null) 
            return false;

        if (p.Nom.Contains(textBox1.Text))
            return true;
        else
            return false;
    }

}

public class Personne
{
    public int Id { get; set; }
    public string Nom { get; set; }
    public string Prenom { get; set; }
}

最佳答案

我在各个网站上看到很多关于这件事的...

要过滤后者是使用数据表作为源的数据网格,这在以下代码中很常见:

DataTable dt = new DataTable("Table1");

//fill your datatable...

//after fill...
dataGrid1.DataContext = dt;
IBindingListView blv = dt.DefaultView;
blv.Filter = "NAME = 'MOISES'";

关于wpf - 在文本框上过滤 DataGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4166403/

相关文章:

wpf - MVVM 多命令处理程序

c# - DataGrid 的选定项

c# - 如何使用户控件像窗口一样在屏幕上可拖动

c# - 将 3D 点投影到 2D 屏幕坐标

WPF Prism - 如何能够从外部程序集将正确的 View 加载到未知的 View 模型?

c# - 更新数据网格wpf中的单元格

mysql - 带复合键数据库表的 w2ui Grid

c# - DataGridRow 背景属性的默认值

WPF 数据网格验证不一致

wpf - WPF DataGridTemplateColumn。我想念什么吗?