6.3.10 使用LINQ检索结果作为Binding的源
<Grid>
<ListView x:Name="listViewStudents" Height="143" Margin="5">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="Id" Width="25" DisplayMemberBinding="{Binding Path=Id}"/>
<GridViewColumn Header="Name" Width="50" DisplayMemberBinding="{Binding Path=Name}"/>
<GridViewColumn Header="Age" Width="25" DisplayMemberBinding="{Binding Path=Age}"/>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
</Grid>
namespace FirstWpfApplication.Objects
{
class Student
{
public string Name { get; set; }
public string Id { get; set; }
public int Age { get; set; }
}
}
List<Student> stuList = new List<Student>()
{
new Student(){Id = "0", Name = "Anders", Age = 27},
new Student(){Id = "1", Name = "Xuyang", Age = 34},
new Student(){Id = "2", Name = "Yang", Age = 26}
};
public MainWindow()
{
InitializeComponent();
this.listViewStudents.ItemsSource = from stu in stuList
where stu.Age <= 30
select stu;
}
linq to xml:
<?xml version="1.0" encoding="utf-8"?>
<StudentList>
<Students>
<Student>
<Id>2005050102</Id>
<Name>Anders</Name>
<Age>27</Age>
</Student>
<Student>
<Id>2005050101</Id>
<Name>Dong</Name>
<Age>28</Age>
</Student>
</Students>
</StudentList>
XDocument xDoc = XDocument.Load(@"C:\Users\v-xufeif\Desktop\Student.xml");
this.listViewStudents.ItemsSource = from stu in xDoc.Descendants("Student")
where int.Parse(stu.Element("Age").Value.Trim()) < 30
select new Student()
{
Id = stu.Element("Id").Value.Trim(),
Name = stu.Element("Name").Value.Trim(),
Age = int.Parse(stu.Element("Age").Value.Trim())
};
<Grid>
<ListView x:Name="listViewStudents" Height="143" Margin="5">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="Id" Width="25" DisplayMemberBinding="{Binding Path=Id, Mode=OneWay}"/>
<GridViewColumn Header="Name" Width="50" DisplayMemberBinding="{Binding Path=Name, Mode=OneWay}"/>
<GridViewColumn Header="Age" Width="25" DisplayMemberBinding="{Binding Path=Age, Mode=OneTime}"/>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
</Grid>