My Sharepoint

sharepoint.egloos.com

포토로그 마이가든



WPF - ICollectionView 에 Filtering 사용하기 WPF

요즘들어 WPF 에 놀라는 때가 하루 이틀이 아니다. 하면 할수록 어려운 것 같다는 생각도 들고 데이터 바인딩을 하다보면 나는 아직 멀었구나 싶다. ㅡㅡ; 흠냐~ 각설하고~

사실은 History 기능이나 AutoComplete 기능을 만들려 하고 있는데 하다보니깐 ICollectionView Filtering 을 추가하는 것이 가장 좋을 것 같다는 생각을 하였다. 이래저래 따져보아도 이넘을 사사용하는 것 가장 편할 것 같더라는

ICollectinView 에는 Filter 속성이 있는데 이에대한 MSDN 설명은 아래와 같다.

항목이 부에 포함되기에 적합한지 여부를 결정하는데 사용되는 콜백을 가져오거나 설정합니다.”

또한 Filter 를 설정할때는 Predicate<T> 델리게이트 메소드를 사용해주는 형식을 취하도록 하고, 실제 Filtering 관련된 기능은 그 안에서 구현하면 된다.

 

예제의 경우에는  

private void textBox1_TextChanged(object sender, TextChangedEventArgs e)

{

    Persons.Filter = new Predicate<object>(PersonSearchFilter);

}

 

Textbox TextChanged 이벤트에 Filter 를 설정해준 다음 아래와 같이 구현해 주었다.

private bool PersonSearchFilter(object e)

{

    Person personItem = e as Person;

 

    if (personItem != null)

    {

        if (personItem.Name.ToLower().Contains(textBox1.Text.ToLower()))

            return true;

        else return false;

    }

    else

        return false;

}

 

머 특별히 이해하기 어려운 소스는 없으므로 패스~

  

추신:

본 프로젝트에서 사용한 Person 클래스는 아래 링크에서 참조 하였음을 밝힙니다.

Implement a Firefox-like search in WPF applications using M-V-VM

(이거보다 훨씬 갠찬은게 나와야 할텐데흠냐~ 어쨋거나 업데되면 새로 게시할랍니다~)

WpfApplication1.zip

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://sharepoint.egloos.com/tb/2362792 [도움말]

덧글

덧글 입력 영역