問題タブ [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 投票する
2 に答える
1657 参照

wpf - Silverlight および WPF の ICollectionView

Silverlight と WPF の両方で ICollectionView から継承する共通のオブジェクトがあるかどうかは誰にもわかりませんか?

それとも、独自のバージョンを作成する必要がありますか?

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

silverlight - ICollectionView が並べ替えまたはフィルター処理されている場合、Silverlight DataForm に新しい項目を追加できない

Silverlight 4 ページに DataForm があります。以下のクラスのビューにバインドします。DataForm に組み込まれたコントロールを使用して、レコードを追加、削除、編集、前後に移動できます。しかし、Filter または SortDescription のコメントを削除するとすぐに、追加 + ボタンを押すたびに、恐ろしい「項目に検証エラーがあるか、編集されていて AutoCommit が false の場合、通貨を変更できません」というエラーが表示されます。私はこれに何時間も立ち往生しており、手がかりがありません。

DataForm ではなく、コードを使用して手動でデータを追加しようとしましたが、フィルターと並べ替えの両方が指定されている場合でも問題なく動作します。

コードからは機能するのに、DataForm 経由では機能しないのはなぜですか? また、フィルターが指定されていない場合は DataForm が機能するのに、常に true を返す no-op フィルターが指定されている場合は失敗するのはなぜですか?

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

c# - 最初に ListView の要素を非表示にする (ICollectionView と ObservableCollection を使用)

ICollectionView (ListCollectionView -> ObservableCollection) にバインドされている ListView を使用しています。データを含むファイルをロードしているときに、コレクションがいっぱいになります。すべてのデータ項目にはブール値フラグがあり、リストビューに表示する必要があるか、非表示にする必要があるかを示します。

現在、私はこれを醜い方法で行っています。最初にコレクション (リストビュー) にデータを入力しています。ユーザーはこれを見ることができます。それを埋めた後、一致しないアイテムをフィルタリング(ICollectionView.Filter)するルーチンを開始します。その瞬間、リストビューのアイテム数が縮小します。

これを実装するより良い方法はありますか?

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

wpf - BindableCollectionのアイテムを通知ICollectionViewで更新します

こんにちは私はビューのリストボックスコントロールでCaliburnMicroからのコレクションをバインドします。はい、これ。

ListBoxアイテムはUserInfoのタイプです。

こんにちは私はリストボックスアイテムを並べ替えてグループ化します。この目的でCollectioViewを使用します。

ListBoxを初期化するとき、このメソッドを使用してアイテムを並べ替えてグループ化します。

TextStatusとNickは、userInfoクラスのプロパティです。

バインド可能なコレクションFriendのアイテムの値を更新するときに、この変更についてコレクションビューに通知する方法が必要です。アイテムを右/良いグループに移動する必要があるため。

例えば

オンラインで値を変更します。

ここで、Friendsコレクションの変更についてコレクションビュー(_currentView)に通知します。

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

wpf - 現在のアイテムの子へのWPFバインディングが更新されない

現在、ICollectionView、myCollectionViewを使用してObservableCollectionにバインドしています。そのコレクションのコンテンツは、ComboBoxから選択されています。各コレクションアイテムmyCollectionItemには、子としてVisualBrush、myVisualBrushがあり、CurrentItemのブラシがプレビューパネルに表示されます。

コレクションアイテムは子オブジェクトmyItemChildでもあり、スライダーの生成に使用される独自のプロパティがいくつか含まれています。このスライダーは、プレビューパネルのプロパティを変更します。

これはすべて期待どおりに機能します。

コレクションビューのCurrentItemが変更されると、プレビューパネルは正しく更新されますが、スライダーには前のCurrentItemのmyItemChildが引き続き表示されます。

myItemChildへの変更は発生していませんが、この状況をどのように処理する必要がありますか?

その可能性が非常に高いので、私は明らかな何かを見逃したので、どんなポインタも高く評価しました。

よろしく

ロブ

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

wpf - WPF Prism 4 単体テスト

Prism 4 を使用して複合 wpf アプリケーションを作成してきましたが、今度はアプリのテストを開始したいと思います。単体テストと moq を使用して、StockTrader RI サンプルを調べ、できる限り RI 実装に近いアプリケーションを構築しようとしました。物事を単純にするためにコントローラーとプレゼンテーションの部分は使用しませんでした。ビューモデル。

ViewModels と CollectionViews をテストする方法について少し迷っています。ロープを表示するためだけに知っている Prism4 での単体テストに関するチュートリアルはありますか。

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

wpf - WPF TreeView ICollectionView フィルターの削除

深さが異なるWPF TreeViewがあります。私のアプリケーションには、ツリー内を検索する機能もあります。これは、ICollectionView インターフェイスの Filter プロパティを使用して実現されます。検索とフィルタリングはすべて正常に機能しますが、フィルターを削除しようとすると問題が発生します。

次のシナリオがあります。検索条件を入力すると、ツリービューがフィルタリングされ、結果が表示されます。ボタンを押してフィルターをクリアすると、フィルターは削除されますが、問題は、以前に検索したものの子ノードのみが表示され、他のノードの子ノードが表示されないことです。これらのノードも展開できません。もう。

私の検索機能は、ツリーを再帰的にたどり、入力された検索テキストについて各ノードをテストします。

view.Filter = null; を適用する必要がありますか? 各ノードとその子ノードのステートメント?

ありがとう、

許す

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

wpf - WPF:ICollectionView-アイテムが別のリストに含まれている場合、1つのリストをフィルター処理しますか?

基本的に、2つのListViewがそれぞれ異なるにバインドされていますItemsSource

リスト1は変更できません(これはReadOnlyObservableCollection)です。
リスト2は(ユーザーの操作によって)変更できます。

リスト1にフィルターを追加して、リスト2にあるものが何も表示されないようにする必要があります。これは、これまでの私のコードです...


List2.ItemsSourceは、ObservableCollection(実際の内容)ではなく、IEnumerableとして返されます。これをできるだけ効率的に実行したいので、次のようにする必要があるかどうかわかりませんでした。

  1. 明示的にItemsSourceをIListとしてキャストして、Containsにアクセスしますか?
  2. ItemsSourceを自分で繰り返して、アイテムが含まれているかどうかを確認しますか?
  3. LINQのCast拡張メソッドを使用してIList(または他のタイプ)にキャストし、Contains?にアクセスします。
  4. その他の方法で?

アップデート:

初めてレンダリングした後、アイテムのフィルタリングを続行していないようです。

更新2:

なぜフィルターを再適用しないのか理解できたと思います。元のコレクションはCollectionChanged通知を発生させないため、フィルターを再度実行する必要はありません。おそらく、この部分を解決することは、別の質問としてより適していますか?しかし、誰かがここでそれに答えたい場合は:

List2コレクションが変更されたときにList1にフィルターを再適用させるにはどうすればよいですか?

更新3:別のSO質問 でcollectionchangedイベントに関連付ける方法を尋ね、回答を得ました。

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

wpf - WPF - ICollectiView SortDescriptions - 文字列で並べ替えますが、null または空白は無視しますか?

基本的に、私はアイテムのコレクションを持っています。String プロパティで並べ替えたい。問題は、昇順を実行すると、空の文字列がリストの一番上に表示されることです...

結果リスト:
"" (String.Empty)
"" (String.Empty)
"" (String.Empty)
A
B
C
D

独自の SortDescription クラスなどを作成する必要がありますか?

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

c# - CollectionView.DeferRefresh()は例外をスローします

大量のINotifyChangedPropertiesイベントが原因で、UIが多数更新される場合があります。その場合、すべてのプロパティがバッチのように設定されているときに、UIへの変更を1回だけ通知することができます。

ViewCollectionの更新を延期する方法を説明するこのすばらしい記事を見つけました。

http://marlongrech.wordpress.com/2008/11/22/icollectionview-explained/

ただし、ビューが延期され、コレクションに何かを追加しようとすると、例外が発生します。なぜこれが許されるべきでないのか分かりません。そもそもそれがポイントです。

InvalidoperationException: 更新が延期されている間は、CollectionViewの内容または現在の位置を変更または確認できません。

誰かがこの問題を解決する方法を知っていますか?どうもありがとう、