Listにバインドされたアイテムコントロールがあります。そのリストに項目を追加しようとすると、項目コントロール(UI)に反映されません。しかし、リストの代わりにObservable Collectionを置き換えれば、それは完璧に働いているのですが、その理由は何ですか?私を助けてください。WPFにItem Control Modifiedが正しく表示されない
観測可能なコレクションを直接ソートする方法はありますか?
Listにバインドされたアイテムコントロールがあります。そのリストに項目を追加しようとすると、項目コントロール(UI)に反映されません。しかし、リストの代わりにObservable Collectionを置き換えれば、それは完璧に働いているのですが、その理由は何ですか?私を助けてください。WPFにItem Control Modifiedが正しく表示されない
観測可能なコレクションを直接ソートする方法はありますか?
差がObservableCollection<T>
クラスはINotifyCollectionChangedインタフェースを実装し、アイテムを追加および削除されるたびにCollectionChanged
イベントを発生させることです。これは、UIが自動的に更新されるために必要です。 List<T>
はこのインターフェイスを実装していません。
観測可能なコレクションを直接ソートする方法はありますか?
ソースコレクションそのものをソートする最も簡単な方法は、あなたがそれを作成するときに、それにソートIEnumerable
を渡す行うことではありません。
this.Collection = new ObservableCollection<Type>(list.OrderBy(x => x.Property));
それが組み込まれている内部の項目を並べ替えSort
方法。
そのため、ObservableCollectionクラスがあり、UIに通知します。 – Clemens
ObservableCollectionを使用しています。 'MyCollectionProp = new ObservableCollection(MyCollectionProp.OrderBy(x => x.SomeProperty));' 'MyCollectionProp'のセッターは、そのセッターでPropertyChangedを上げる必要があります。 –
SortViewの問題を解決するためにCollectionViewSourceを調査しましたか? – Eric