問題タブ [listcollectionview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
862 参照

c# - CollectionView ライブ ソート コールバック

私は、カスタムとライブシェーピングをTreeView使用して子を注文する を持っています。現在選択されている がビューで再ソートされたときに、の新しい位置に自動的にスクロールしたいと思います。ただし、 が新しい並べ替えを適用したときに通知を受ける方法が見つからず、必要な動作が に組み込まれていないようです。ListCollectionViewIComprarerTreeViewItemTreeViewTreeViewItemListCollectionViewTreeViewControl

ListCollectionViewがソート順を再計算したときに通知を受ける方法はありますか?

0 投票する
1 に答える
991 参照

c# - ListCollectionView で検索するにはどうすればよいですか?

昨日まで、ListView を使用して List<> にバインドしていました。
次に、簡単なフィルタリングのために ListView を ListCollectionView にバインドするのが理にかなっている記事を読みました。私はこれを行いましたが、正常に動作します。
しかし、ListCollectionView でアイテムを見つける方法がわかりません。
昨日まで私はこのコードを使用していましたが、リストで動作します:

しかし、ListCollectionView には StartsWith のようなものはないよう
です (フィルター処理された) ListCollectionView を検索するにはどうすればよいですか?

0 投票する
1 に答える
815 参照

wpf - WPF で ListViews と DataGrids の同期グループ化/フィルタリングを実行する方法は?

私のアプリケーションで、音楽選択インターフェイスでソフトウェアMusicBeeが使用するのと同じ効果を作成しようとしています (下のスクリーンショット)。

DataGrid を含む下部パネルと、グループ化された行を表示するいくつかの ListView を含む上部パネルがあります。上部パネルの [ジャンル] リストで [ロック] をクリックすると、他のリストが更新され、それに応じて DataGrid がフィルター処理されます。上部パネルの他のリストをクリックし続けると、DataGrid フィルタリングはますます制限的になり、それに応じて更新されます (上記のフィルターに一致する行のみが表示されます)。

また、余分な行があります:All (N items)[Empty]、どうにかしてビュー ソースに追加する必要があると思います。

ここに画像の説明を入力

ListCollectionViewドキュメントに次のように記載されているため、クラスについて読み始めました。

「データ コレクションにバインドする場合、データの並べ替え、フィルター処理、またはグループ化が必要になる場合があります。これを行うには、コレクション ビューを使用します。」

グループ化とフィルタリングは、ここで達成したいことのすべてのように思えますが、例が不足しており、ViewModel 側または XAML 側のどちらから始めればよいかさえわかりません。

0 投票する
0 に答える
158 参照

c# - ナビゲート時のListCollectionView例外エラー「System.Reflection.TargetInvocationException」

WPF ポップアップ ビューを ListCollectionView にバインドしました。次へ/前への 2 つのボタンがあるので、ユーザーがクリックすると、コレクションに移動できます。しかし、ユーザーが最後の要素にいるときに次へ(または最初の要素にいるときに前)をクリックすると問題が発生します。

「System.Reflection.TargetInvocationException」が発生します。MoveCurrentToNext/Previous が空のアイテムに移動しようとしているようです。ブレークポイントを使用してテストを行いました。コレクションに 2 つの要素があり、最後の要素にいるときに MoveCurrentToNext を使用できました。必要でないときにこのメソッドを使用しない解決策はありますか?

表示 (次へボタンの例)

助けてくれてありがとう。

0 投票する
1 に答える
196 参照

c# - フィルタリングを使用した ListView のカスタム キャッシュ

C# WPF アプリケーションにa がありListViewます。GridViewはからで作成された にItemsSourceバインドされます。動的な並べ替え、フィルタリング、およびグループ化に を使用します。これらはすべて、 から調整またはオン/オフを切り替えることができます。ListCollectionViewViewModelObservableCollection<MyClass>ListCollectionViewView

フィルターを変更したり、グループ化のオン/オフを切り替えたりすると、すべてのビジュアル リスト ビュー アイテムが再作成され、UI が約 1 秒間フリーズします。約 250 の項目が表示され、約 10 の列 (プログレスバー付きのセル テンプレートがあるものもあります) があるので、これは当然のことです。

これで、明らかな答えは仮想化を有効にすることだとわかりました。ただし、これにより、スクロールがぎくしゃくしたり、スクロールするとスクロールバーのサイズが変化したりするなど、望ましくない影響が生じます (これは、グループ化をオンにした場合に発生します。これは、グループの高さが異なり、仮想化スタック パネルが合計の高さを適切に計算できないためです)。初めに)。

私がやりたいことはListView、生のリスト内のすべてのアイテムのビジュアル要素を保持し (フィルタリングもソートもされていない、つまりObservableCollection<MyClass>)、変更に応じてビジュアル ツリーにのみ追加または削除することです。ListCollectionView.

生のリストを変更することはめったにありませんが、フィルタリング、並べ替え、およびグループ化を頻繁に変更するため、このソリューションがアプリのパフォーマンスを向上させることを願っています。

ListViewこれを行うには(または)から継承するカスタム コントロールを作成する必要がありますGridViewか、それとも別の方法がありますか?

0 投票する
1 に答える
426 参照

c# - ListCollectionView 内の特定のアイテムに移動する

SelectedDay の Date プロパティの値に基づいて、ListCollectionView 内の特定の項目に移動しようとしています。

VM

<Day>オブジェクトには のプロパティがあり、それをオブジェクトのプロパティDateと一致させたいので、内部のアイテムの一致する場所のアイテムに移動できます。Date<ShootingDay>ShootingDayInfoListSelectedDay.DateDateShootingDayInfoList

これを試しましたが、選択したアイテムが同じオブジェクトの一部ではないため、機能しません。

どうすればこれを機能させることができますか?私はこれらすべてに非常に慣れていません。