2011-02-16 7 views
0

콤보 상자에서 선택한 값을 기준으로 필터링 할 데이터 격자가 있습니다. DataGrid의 소스는 XML 파일입니다. 아래는 내가 사용하고있는 코드입니다. 코드를 추적하면 뷰 필터가 각 행에 대해 true 및 false를 올바르게 반환하지만 DataGrid는 업데이트되지 않습니다. 내가 뭘 놓친거야?WPF 필터 데이터 격자

ComboBoxItem typeItem = (ComboBoxItem)cbPositionFilter.SelectedItem; 
String position = typeItem.Content.ToString(); 

IEnumerable<XElement> playersSource = ((XContainer)AllPlayers.DataContext).Descendants("Player"); 
ICollectionView view = CollectionViewSource.GetDefaultView(playersSource); 

view.Filter = delegate(object item) 
{ 
     bool match = ((XElement)(item)).Element("position").Value == position; 
     return match; 
}; 
+0

XML을 그리드에 바인딩하는 데 사용하는 XAML은 무엇입니까? 나는 바운드 콜렉션과 playersSource가 다르기 때문에 다른 기본보기를 가지고 있다고 생각한다. – mancaus

답변

1

은 당신의 DataGridplayersSource, 또는 view에 바인딩? 당신이 전자를하는 경우, 후자를 시도하십시오. :)

+0

예, 뷰 + 필터를 설정 한 후 DataGrid를 리 바인드해야한다는 것을 알지 못했습니다. 정말 고마워! – novacara

관련 문제