2017-11-16 11 views
-1

Listにバインドされたアイテムコントロールがあります。そのリストに項目を追加しようとすると、項目コントロール(UI)に反映されません。しかし、リストの代わりにObservable Collectionを置き換えれば、それは完璧に働いているのですが、その理由は何ですか?私を助けてください。WPFにItem Control Modifiedが正しく表示されない

観測可能なコレクションを直接ソートする方法はありますか?

+4

そのため、ObservableCollectionクラスがあり、UIに通知します。 – Clemens

+1

ObservableCollectionを使用しています。 'MyCollectionProp = new ObservableCollection (MyCollectionProp.OrderBy(x => x.SomeProperty));' 'MyCollectionProp'のセッターは、そのセッターでPropertyChangedを上げる必要があります。 –

+0

SortViewの問題を解決するためにCollectionViewSourceを調査しましたか? – Eric

答えて

2

差がObservableCollection<T>クラスはINotifyCollectionChangedインタフェースを実装し、アイテムを追加および削除されるたびにCollectionChangedイベントを発生させることです。これは、UIが自動的に更新されるために必要です。 List<T>はこのインターフェイスを実装していません。

観測可能なコレクションを直接ソートする方法はありますか?

ソースコレクションそのものをソートする最も簡単な方法は、あなたがそれを作成するときに、それにソートIEnumerableを渡す行うことではありません。

this.Collection = new ObservableCollection<Type>(list.OrderBy(x => x.Property)); 

それが組み込まれている内部の項目を並べ替えSort方法。

関連する問題