다음은 CollectionViewSource.filter 이벤트에 대한 필터링 논리입니다. 나는 다음과 같은 의심이있다
1. e와 item은 무엇이며 아직 사용할 수 있다고 선언하지 않았습니다. 어떻게?
2. 무엇을 AuctionItem product = e.Item as AuctionItem
합니까? 여기서 키워드로하는 유형 캐스팅은 무엇입니까?
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
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다