問題タブ [icollectionview]

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 に答える
852 参照

c# - ICollectionView が現在フィルター可能かどうかを確認する方法は?

ViewModel のプロパティに a のプロパティをバインドしていItemsSourceます。DataGrid次に、次のようにアイテム ソースICollectionViewを使用してデフォルト ビューを作成します。DataGrid

_displayItemsView = CollectionViewSource.GetDefaultView(_displayItems);

は で_displayItemsありList_displayItemsViewICollectionViewです。

今私が抱えている問題は、ユーザーが次のようにデータグリッドをフィルタリングできるようにしていることです:

これはほとんどの場合うまく機能しますが、ユーザーが現在行を編集または追加している場合DataGrid、未処理の例外が によってスローされますICollectionView。次のいずれかを検出するにはどうすればよいですか。

  1. DataGrid現在修正中、または
  2. ICollectionViewフィルタリングする状態ではありませんか?

あらゆるガイダンスを歓迎します。私はアイデアを受け入れます。ありがとう!

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

c# - WPF DataGridはDataGridRowを返さない

私は WPF アプリケーションで DataGrid を使用しており、最後まで DataGridRow を 1 つずつ取得するために for ループを使用しています。現在、for ループICollectionViewを使用した後にデータグリッドを並べ替えることICollectionViewができません。

XAML マークアップ:

コードビハインド:

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

c# - アイテムが等しいと見なされる場合、ICollectionView 内のアイテムの順序を維持します

次の状況があります:SortIdプロパティでソートする必要があるアイテムのリストを取得します。

IComparable<T>ItemViewModels にインターフェイスを実装したので、プロパティで使用Comparer.Defaultして、ICollectionView.CustomSortリフレクションを使用せずに並べ替えを適用できます (PropertySortDescriptionそうです)。

さて、私の問題は、アイテムがSortIdコレクションに表示される順序で単純にソートされる必要があるため、アイテムにプロパティが設定されていないことがあることです。ただし、項目の数によっては順番が逆になったり、完全に混ざって表示されたりすることもあるようです。

この動作を回避する方法はありますか? 並べ替えを適用しない場合、アイテムは正しい順序で表示されます。ただし、アイテムのプロパティに応じて、並べ替えを動的にオンまたはオフにする必要がSortIdあります-これはまったく好きではありません...他のアイデアはありますか?

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

wpf - タスク ライブラリを使用して ICollectionView を読み込む

次の問題があります。wpf リストボックスにバインドされている ICollectionView に単純なリストをロードすると、期待どおりに CurrentChanged イベントが発生します。

ただし、データを別のスレッドにロードしていると想像してください。次に、 currentChanged イベントを発生させる同じ動作が必要ですが、機能しません。

UIスレッドで作業するために TaskScheduler.FromCurrentSynchronizationContext() を使用していますが、機能しないことに注意してください。私も Application.Current.Dispatcher.Invoke を試してみましたが、うまくいきませんでした。

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

wpf - コレクションにバインドするIcollectionviewのwpf​​データグリッドドラッグ行

私はこのようなデータグリッドを持っています

このデータグリッドで行をドラッグしようとすると、コレクションビューで行のインデックスを取得できます。しかし、このインデックスはコレクション _productsPosition 内の同じ要素を取得するのに役立ちません。collectionView がフィルターによって変更されたためです。

したがって、_productsPositionではなく、コレクションビューで要素を移動するにはどうすればよいかという質問があります。例外をスローするこのようなもの:

例外の内容は次のとおりです。

未処理の例外: System.InvalidOperationException: ItemsSource の使用中は操作が無効です。代わりに、ItemsControl.ItemsSource を使用して要素にアクセスして変更します。

System.Windows.Controls.ItemCollection.CheckIsUsingInnerView() で

System.Windows.Controls.ItemCollection.RemoveAt (Int32 removeIndex) で

作業サンプル:

ドラッグ機能:

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

wpf - DataGrid にコンテンツがある場合とない場合を検出する

Content がある場合、Button IsEnabled プロパティを DataGrid プロパティ/Event にバインドしたいと考えています。DataGrid の Item Source は Observable コレクションですが、フィルタリングを実装しているため、表示される内容は ItemSource コレクションとは異なる場合があります。

ビューが空または空でない場合に発生する DataGrid のイベントまたはプロパティはありますか?

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

c# - EF LoadAsync の後にビューを更新する

大量のデータが読み込まれることを想定して、データの読み込み中に UI が応答するようにしたいと考えています。現在、唯一の機能するコードは、望ましくない UI を常に更新する次のコードです。データを非 UI スレッドにロードし、ビューで最終更新を取得するにはどうすればよいですか?

注: への呼び出しを削除するとEnableCollectionSynchronization、データはロードされますが、ICollectionViewとそのSourceCollectionアイテムは 1 つしかありません。

0 投票する
2 に答える
294 参照

c# - プロパティの名前に基づいて個別の要素を見つける

データ グリッドに一意の値を表示し、ユーザーがグリッド内の特定の列の一意の値をフィルターできるようにする汎用フィルター コントロールを構築しようとしています。

この質問に対して提案された回答は気に入りましたが、それらはすべて事前にプロパティを知る必要があります。コードをOCPに準拠させ、プロパティ名の文字列を取り、それに個別の機能を適用するメソッドを1つだけ持ちたいと思います(おそらくリフレクションを使用します)。私の列を考慮して、この問題の最良の解決策は何ですか(それにより、名前、年齢などのフィルタリングする列名は動的です)。

具体的には、次の switch case ステートメントを回避しようとしています。

次のような一般的なメソッドがあります。

参考までに - ViewModel の私のコレクションは ICollectionView 型です (私が探している種類のフィルタリングを行う CollectionView で既に定義されている同様のものがあると思います)。

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

c# - ICollectionView へのバインディングが機能しない

だから、私はViewModelがItemsControlを介して割り当てられているUserControlのリストを作成しています

上記のコードは機能しますが、データを変更せずに逆に表示したいので:

ViewModel のどこかで、ブレークポイントを介してコードが実行されていることを確認しました

しかし、突然機能しなくなりました。どこにもエラーは返されませんが、UserControlA は正しく表示されません。(ユーザー コントロールは、データなしで表示されます - に保存されますREVERSEDListOfViewModels)

理由はありますか?