在WPF数据网格中输入提前搜索
本文关键字:输入 搜索 网格 WPF 数据 数据网 | 更新日期: 2023-09-27 18:02:14
嗨,我有一个收集学生的网格
public class Student
{
public string First{get;set;}
public string Last{get;set;}
public int Age{get;set;}
}
MyGrid.ItemsSource= new List<Student>(){new Student{First="First1",Last="Last1",Age=1},
new Student{First="First2",Last="Last2",Age=2}},
new Student{First="First3",Last="Last3",Age=3}},
new Student{First="First4",Last="Last4",Age=4}},};
现在,在页面或网格加载后,用户只需输入一些字符,应用程序必须选择与用户输入的名字或姓氏相匹配的特定行。
这与我们在windows资源管理器或visualstudio中看到的非常相似,只需在Win资源管理器中输入to select folder或在visualstudio中输入。cs文件。
经过两天的研究我终于找到了答案。
实现这个功能非常简单。
将附加属性设置为所需的属性名称,它会神奇地工作。
TextSearch.TextPath="First"
您的DataGrid
将如下:
<DataGrid x:Name="myDataGrid" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Key}" Header="Key"/>
<DataGridTextColumn Binding="{Binding Value}" Header="Value"/>
</DataGrid.Columns>
</DataGrid>
如果你想要像Key
x Value
这样的东西,你不需要为此创建一个model
, .NET Framework 4.5
已经为此创建了一个特定的类,类Dictionary <TKey, TValue>
(TKey
是关键数据的类型,TValue
是值数据的类型,所以你需要一个C#
代码类似(或等于)以下:
Dictionary<string, string> dictionary = new Dictionary<string, string>()
{
{"Key1","Value1"},
{"Key2","Value2"},
{"Key3","Value3"}
};
this.myDataGrid.ItemsSource = dictionary;