글
msdn에는 += 를 이용한 FilterEventHandler 등록이 가능한 것으로 나와 있으나 ex. listingDataView.Filter += new FilterEventHandler(ShowOnlyBargainsFilter);
문법적인 오류가 나서 확인하지 못했음
그래서 저같은 경우 object를 받아서 처리하는 필터함수를 만들어서 Filter Property에 저장하는 식으로 사용했습니다.
함수 등록
CollectionView leftView = (CollectionView)CollectionViewSource.GetDefaultView(PcPhoneBookLsv.ItemsSource);
leftView.Filter = new Predicate<object>(PhoneBookSearchFilter);
함수 등록 해지
CollectionView leftView = (CollectionView)CollectionViewSource.GetDefaultView(PcPhoneBookLsv.ItemsSource);
leftView.Filter = null;
등록된 함수
private bool PhoneBookSearchFilter(object e)
{
PhonebookItem pbItem = e as PhonebookItem;
string searchStr = ui_txtSearch.Text;
if (searchStr == "")//검색어가 없을때
{
//e.Accepted = true;
return true;
}
//PhonebookItem pbItem = e.Item as PhonebookItem;
if (pbItem != null)
{
if ((pbItem.FirstName.Contains(searchStr)) || (pbItem.LastName.Contains(searchStr)) || ((pbItem.LastName + pbItem.FirstName).Contains(searchStr)) ||
(pbItem.MobileNum.Contains(searchStr)) || (pbItem.HomeNum.Contains(searchStr)))
{//지정 필드가 검색어를 포함할 경우
//e.Accepted = true;
return true;
}
else
{//포함하지 않을 경우
//e.Accepted = false;
return false;
}
}
else
return false;
}
이 글은 스프링노트에서 작성되었습니다.
RECENT COMMENT