筛选的数据源的绑定,使用Linq Filter Data Collection。从数据集合中筛选符合设定条件的数据对象集合。
UI设计:
设计列表控件,后台将数据源绑定到该控件
<ListBox Name="listProducts" DisplayMemberPath="ModelName" SelectionChanged="listProducts_SelectionChanged"></ListBox>
Grid元素绑定到列表中选择的对象,这样Grid中的其它控件可绑定到选择对象的属性字段
<Grid DataContext="{Binding ElementName=listProducts, Path=SelectedItem}" TextBox.TextChanged="txt_TextChanged">
<TextBox Text="{Binding Path=ModelNumber}"></TextBox>
后台代码设计:
定义一个全局的数据集合
private ICollection products;
依据条件筛选数据集,赋值给变量,再将控件数据源绑定到变量
products = App.StoreDb.GetProductsFilteredWithLinq(decimal.Parse(txtMinimumCost.Text));
listProducts.ItemsSource = products;
其中Linq查询函数如下:
传入的参数是产品的最低价格
public ICollection<Product> GetProductsFilteredWithLinq(decimal minimumCost)
{
// Get the full list of products.
ICollection<Product> products = GetProducts();
// Create a second collection with matching products.
IEnumerable<Product> matches = from product in products
where product.UnitCost >= minimumCost
select product;
return new ObservableCollection<Product>(matches.ToList());
}
网友评论