2016-10-05 7 views
0

DataGridをフィルタリングするにはどうすればよいですか? このコードは動作しません:WPF DataGrid Filterが機能しない

public MainWindow() 
    { 
     InitializeComponent(); 

     SetSource(); 
    } 

    private void FilterTextBox_TextChanged(object sender, TextChangedEventArgs e) 
    { 

    } 

    void SetSource() 
    { 
     CollectionViewSource Sorted = new CollectionViewSource() { Source = MainDB.CurDB.Requests }; 
     Sorted.SortDescriptions.Add(new SortDescription("Id", ListSortDirection.Descending)); 
     Sorted.Filter += Sorted_Filter; 
     MainDataGrid.ItemsSource = Sorted.View; 
    } 

    private void Sorted_Filter(object sender, FilterEventArgs e) 
    { 
     e.Accepted = true; 
    } 

私が手例外:

"System.Windows.Data.BindingListCollectionView" It does not support filtering

更新: フィルタが今取り組んでいるが、今、私は次のエラーを取得する、休憩こと列:

System.Windows.Data Error: 40 : BindingExpression path error: 'Changing Date' property not found on 'object' ''RequestsRow' (HashCode=56483442)'. BindingExpression:Path=Changing Date; DataItem='RequestsRow' (HashCode=56483442); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')

一部のセルが空のままになっているときに問題が発生します。

マイデータセット。私が持っている他のクラス:

問題は "SM ID" "SM_ID" を置き換えることで解決した、など

+0

はこれを試してみてください: 'ICollectionViewにソート= CollectionViewSource.GetDefaultView(MainDB.CurDB.Requests); 'CollectionViewSourceの代わりにSorted =新しいCollectionViewSource(){Source = MainDB.CurDB.Requests}; ' – Pikoh

+0

ICollectionView Sorted = CollectionViewSource.GetDefaultView(MainDB.CurDB.Requests); Sorted.Filter = item => true;例外をスローします( " メソッドはサポートされていません") – DenisJNewb

+0

OK、 'ICollectionView Sorted = CollectionViewSource.GetDefaultView(MainDB.CurDB.Requests.AsEnumerable()); Sorted.Filter = item => true; ' – Pikoh

答えて

0

はこれを試してみてくださいません:

List<DataRow> requests = MainDB.CurDB.Requests.Select().ToList(); 
CollectionViewSource Sorted = new CollectionViewSource() { Source = requests }; 
+0

"Requests"がDataTableです – DenisJNewb

+0

投稿を編集しました... – Michelle

+0

このエラーの原因:System.Windows.Data Error:40:BindingExpression path error: SM id 'プロパティが' object '' 'RequestsRow'(HashCode = 45629785) 'に見つかりませんでした。 BindingExpression:Path = SM Id; DataItem = 'RequestsRow'(HashCode = 45629785);ターゲット要素は 'TextBlock'(Name = '')です。 targetプロパティは 'Text'(型 'String')です。 DataGridの列「SM Id」、「Creation Date」、および「Changing Date」が破損します – DenisJNewb

関連する問題