2009-08-07 6 views
2

새 PagedCollectionView를 ItemsSource로 사용하고 있습니다.Silverlight에서 "실시간"필터링을 구현하는 방법

나는 데이터 그리드에 CollectionView을 구속하고,이 같은 내 필터를 통과 만 표시 값으로 그리드가 필요했습니다

  var oc = new ObservableCollection<User>(); 
     var pc = new PagedCollectionView(oc); 
     dataGrid.ItemsSource = pc; 

사용자 클래스에서 INotifyPropertyChanged를 구현합니다.

 private void CheckBox_Checked(object sender, RoutedEventArgs e) 
    { 
     pc.Filter += Include; 
    } 

    private bool Include(object obj) 
    { 
     return (obj as User).Name == filterText.Text; 
    } 

을 그리고 그것은 작동 :이 같은 필터를 적용하고 있습니다. 문제는 사용자를 업데이트하면 필터 결과가 업데이트되지 않는다는 것입니다. 필터가 깨끗하고 다시 적용되면 작동합니다.

물론 PagedCollectionView에서 Refresh() 메서드를 호출 할 수 있지만 수동으로 뷰를 새로 고치지 않고도이 작업을 수행 할 수 있다고 생각했습니다.

"라이브 필터링"메커니즘이 필요합니다. 코딩 방법에 대한 아이디어가 있습니까?

시나리오 : 시스템의 라이브 알람보기 용 응용 프로그램입니다. 사용자가 column0에 "Error"또는 "Warning"이있는 행 (내 필터) 만 보도록 선택했다고 가정 해보십시오. 행의 column0이 "Info"에서 "Warning"으로 바뀌면 Refresh()를 호출하지 않고 해당 행이 자동으로 표시되어야합니다 (필터를 통과 함).

감사 Larsi

답변

0

은 그냥 실버 라이트 3 SDK에서 AutoCompleteBox 컨트롤을 사용할 수 없습니다?

+0

흠. 내가 어떻게하는지 잘 모르겠다. 나는 내가 필요로하는 것을 명확히하기 위해 시나리오로 포스트를 업데이트했다. – Larsi

관련 문제