2017-12-05 29 views
0

ListViewはXAMLでObservableCollectionにバインドされています。私はコード内でソートを行っていましたが、ソートをリフレッシュする必要があることを覚えておく必要がある多くの操作があります。XAMLでObservableCollectionにバインドされたListViewを並べ替えます

だから私はそれをもっときれいにし、XAMLでより動的にソートを直接行いたいと思っていました。

残念ながら、これを行うためのタグ/属性は見つかりませんでした。私が見つけたすべての例は、少なくとも今のところ、XAMLでサポートされていないと思われる<CollectionViewSource.SortDescription>を使用しているWPFアプリケーション用です。

私が使用したUWPコミュニティツールキットでAdvancedCollectionViewコントロールが見つかりました。このコントロールは既存のObservableCollectionを使用し、ListView(ソース)はこのAdvancedCollectionViewにバインドされています。

これはうまくいくようです - だから何が問題なのですか? 1)多くのライセンスを持つ巨大なNu-Getパッケージを使用する必要がありました。(これは私が読んでいたはずです:-)) 2)ListView(単一項目)にバインドされたクラスに対してINotifyPropertyChangedを実装しました。 ListViewはプロパティが更新されると取得されます。アイテムのタイトルが変更されます。これは先に動作していましたが、AdvancedCollectionViewに切り替える前に、イベントライザーはNullReferenceExcpetionをスローしました。

これで、実際にバインドされたプロパティでListViewを並べ替える簡単な作業を行うための、より多くのOut-of-the-Boxの方法がないかどうか尋ねています。

+0

「私は、背後にあるコードでソートを行うために使用される」、私はあなたがそれを行う方法を知っているだろうか?あなたはちょうどコードなしでxamlでそれをやりたいのですか? 「AdvancedCollectionView」でさえ、ソートコードの背後にある、参照されるパッケージが必要です。それはあなたの要求を満たすことができますか? –

+0

コミュニティツールキットはオープンソースなので、独自のヘルパークラスを構築するために必要なセクションを参照することができます。 –

+0

私は、ObservableCollectionをSort()拡張メソッドで「手動」でソートしたことを意味していました。 – Patric

答えて

0

明らかに、AdvancedCollectionViewの問題は、Filterプロパティが設定されていないときにバグがあるためです。

私は完全なソースとNuGetパッケージ-を交換し、それがライン上とNullReferenceExceptionを投げたItemOnPropertyChangedでエラー見つけ、それをデバッグ:「_filter」はNULLであったため

filterResult = _filter(item); 

を。

私はバグをreporeted、それは修正のように見えますが、コミュニティツールキットのバージョン2.2になります。 https://github.com/Microsoft/UWPCommunityToolkit/issues/1686

関連する問題