我搜索示例或示例以通过文本框筛选 WPF DataGrid 列元素。
类似的东西this http://www.codeproject.com/KB/WPF/wpf_datagrid_filter.aspx(给定的示例使用WPF工具包...显然被微软抛弃了...)
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; }
}
您可以通过将 DataGrid 绑定到ICollectionView
支持过滤。
Details here http://web.archive.org/web/20101003082605/http://msdn.microsoft.com/en-us/library/ff407126.aspx对于 .NET 4。该过程与 .NET 4.5 相同,但似乎文档已丢失。有一个小提及here https://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid(v=vs.110).aspx在“分组、排序和过滤”标题下。
编辑:在最初撰写本文时,WPF 工具包尚未被 Microsoft 放弃。曾经属于其中的控件现在位于框架中,并且该工具包仍然存在并且运行良好here http://wpf.codeplex.com/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)