在CollectionViewSource的事件处理程序中e和item的目的是什么?过滤事件
本文关键字:是什么 过滤 事件 item 事件处理 CollectionViewSource 程序 | 更新日期: 2023-09-27 17:51:10
下面是一个过滤逻辑CollectionViewSource。过滤事件。我有以下疑问
1。什么是e和item,我们还没有声明它们仍然可以使用。怎么使用?
2。AuctionItem product = e.Item as AuctionItem
做什么?as关键字在这里做什么类型转换?
private void ShowOnlyBargainsFilter(object sender, FilterEventArgs e)
{
AuctionItem product = e.Item as AuctionItem;
if (product != null)
{
// Filter out products with price 25 or above
if (product.CurrentPrice < 25)
{
e.Accepted = true;
}
else
{
e.Accepted = false;
}
}
}
以下是完整代码的MSDN链接:http://msdn.microsoft.com/en-us/library/system.windows.data.collectionviewsource.filter(v=vs.110).aspx
-
变量
e
由框架实例化,而不是由您实例化。这就是为什么你不需要创造它。对于要过滤的每个项,您将被回调。Item
是测试过滤器的对象(参见http://msdn.microsoft.com/en-us/library/system.windows.data.filtereventargs.item(v=vs.90).aspx)。这是你的数据——在你的例子中是AuctionItem。 -
as
是一个强制转换操作符,如果不可能强制转换,则计算为null
,而不是抛出异常(参见http://msdn.microsoft.com/en-us/library/cscsdfbt.aspx)。在您的例子中,它将e.Item
转换为AuctionItem
。如果e.Item
不是AuctionItem
,你的产品变量将是null
。