問題タブ [data-virtualization]

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

wpf - MVVM とデータの仮想化

ViewModel インスタンスのツリーにバインドされた TreeView があります。問題は、モデル データが低速のリポジトリから取得されているため、データの仮想化が必要なことです。ノードの下のサブ ViewModel のリストは、親ツリー ビュー ノードが展開されている場合にのみロードされ、折りたたまれている場合はアンロードされる必要があります。

MVVM の原則に準拠しながら、これをどのように実装できますか? サブノードをロードまたはアンロードする必要があることを ViewModel に通知するにはどうすればよいですか? それは、ツリービューの存在について何も知らずにノードが展開または折りたたまれたときですか?

MVVMではデータの仮想化がうまくいかないような気がします。データ仮想化では、ViewModel は通常、UI の現在の状態について多くのことを知る必要があり、UI の多くの側面を制御する必要もあります。別の例を見てみましょう:

データ仮想化を備えたリストビュー。ViewModel は、モデル内のアイテムの数に依存するため、ListView のスクロールサムの長さを制御する必要があります。また、ユーザーがスクロールするとき、ViewModel は、リポジトリからモデル データの適切な部分をロードできるように、スクロールした位置とリストビューの大きさ (現在収まる項目の数) を認識する必要があります。

0 投票する
3 に答える
3219 参照

silverlight - ページングを使用せずに遅延ロードされたSilverlightデータグリッドを実装する方法

新しくリリースされたRIAサービスのビジネスアプリケーションテンプレートを使用すると、の上にデータグリッドをDomainDataSource組み合わせて使用​​した多くの例を見ることができますDataPager。プロパティPageSizeおよびLoadSizeを使用して、1ページに表示されるデータの量と、バックグラウンドでプリフェッチされるデータの量を調整できます。

次に、スクロールバーがあり、ポケットベルがないデータグリッドが必要です。基になるDomainDataSourceデータは、グリッドに表示されるデータのみをロードする必要があります。ユーザーがまだデータコンテキストにないアイテムまでスクロールダウンすると、別のロードがトリガーされます。これを行う方法のサンプル実装はありますか?

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

windows-phone-7 - Windows Phone 7でのデータの仮想化:例

Windows Phoneでは、リストボックスはデータの仮想化をサポートします。つまり、必要なデータのみをロードでき、すべてをロードすることはできません。Peter Torrが、実装する必要のあるインターフェイスについて説明します。

短いバージョンでは、要素の位置を返すメソッドと、特定の位置にある要素を返すメソッドの両方を作成する必要があります。問題は、Peter Torrの例がかなり馬鹿げていることです。彼は、名前としてインデックスを持つオブジェクトを返すだけです。

私の質問は、これを実際にどのように実装するのかということです。

私の考えは、(整数)インデックスと(整数)IDのリストを含む1つのファイルと、実際のデータを含むすべてのオブジェクトのファイルを作成することです。あまりエレガントなアイデアではないようですが、これ以上のことは考えられませんね。

アップデート

私の質問は不正確なようです。Peter Torrの例が「かなり馬鹿げている」と言うとき、私は彼が何か間違ったことをしたと言っているのではありません。彼の目的は、実装する必要のあるインターフェイスを説明することだけでした。実際の実装は、特定のデータによって異なります。

私が求めているのは、これを実装するためにどのような選択が必要かということです。単純にデータをWebサービスに配置し、毎回クエリを実行し(もちろん、ローカルキャッシュを使用して)、データベースを構築し、インデックスを格納するファイルとデータ用のファイルを作成する必要がありますか?すべての場合に十分な解決策はありますか?すべての選択肢の欠点と利点は何ですか?

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

c# - データ仮想化を使用して、ViewModelのプロパティをViewのItemsControlのSelectedItemにバインドする問題

WPFのデータ仮想化について、WPF:データ仮想化は良い記事です。

これを使用すると、データ仮想化は私のコードで適切に実行されましたが、1つの問題があります。それは、ViewModelのプロパティをViewのItemsControlのSelectedItemにバインドできないことです。データの読み込み中に1つのデータ項目が何らかの条件を満たす場合、その1つの項目はViewModelのプロパティとして設定され、ViewのItemsControlのSelectedItemにバインドされますが、バインドされません。

これに関する私のコードは次のとおりです。IItemsProviderとVirtualizingCollectionの種類については、WPF:データ仮想化を参照してください。

これまでのところ、私は試しました:

  1. データ仮想化が使用されなかった場合、選択されたアイテムのバインドはクールになると確信しています。
  2. VirtualizingCollectionのIndexOf(T item)メソッドは、常に-1を返します。これが問題になると考えて、IndexOf(T item)が実際のインデックスを返すように実装しましたが、この問題には関係ありませんでした。

IItemsProviderを実装するコード

ViewModelでVirtualizingCollectionを使用するコード

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

c# - WPFAutoCompleteBoxデータの仮想化

WPFAutoCompleteBoxにデータ仮想化を実装しようとしています。ここで、ListViewでうまく機能するBea Stollnitzのコードを見つけ、ComboBoxで簡単に機能するようにしましたが、AutoCompleteBoxで正しく機能するように見える方法はありません。

正確には、それは機能します-リストは仮想化され、アイテムは起動時にすべてロードされません-しかし、発生するように見えるのは、ItemsSourceが変更されるとすぐにAutoCompleteBoxがリスト内のすべてのアイテムを反復し、これが全体を壊してしまうことです(つまり、ロード時に、リスト内のすべてのページが要求されるため、仮想化されていても、最初にすべて要求されてロードされます)。私の推測では、これはACBoxが行うフィルタリングによるものですが、コントロールでは通常、Populatingイベントを使用してサーバー側でフィルタリングを実行できるため、これを防ぐ方法がないことに驚いています。

何かが足りないと感じたり、これまで誰もこのようなことをしたことがない、またはできないとは信じられないので、明らかに間違ったことをしているだけだと思います。私はWPFを初めて使用するので、理解できません。

これをまとめるために私が行ったことのいくつかを次に示します(同様の問題に関するインターネット検索に基づいています)。

  • 組み込みのUI仮想化のすべての条件が正常であることを確認しました。これには、明示的にオンにする、リストボックスの最大高さを設定するなどが含まれます。

  • AutoCompleteBoxのListBoxを、Beaが例で使用しているようなListViewに置き換えました。並べて表示すると、ListView自体は期待どおりに機能しますが、ACBoxに埋め込まれているものは機能しません。

  • ACBoxでフィルタリングを使用しない、カスタムフィルタを使用する、入力する偶数を手動で処理するなどを試しました。これは役に立ちません。カスタムフィルターでは1つのアイテムの評価結果しか指定できないため、カスタムフィルターを作成するだけでは明らかに不十分です。リストをループするコードは表示されないため、ループを防ぐことはできません。フィルタを「なし」に切り替えても、何も起こりません。

ありとあらゆる提案を歓迎します!

このターゲットは.NET3.5であり、WPF Toolkit(2010年2月リリース)を使用しています。

ありがとうございました!

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

c# - C# での WinRT データ仮想化の実装

私はMSDN フォーラムでこの質問をしました(成功しませんでした)。多分 StackOverflow はその強さをもう一度証明するでしょう...

コレクション アプリとリスト アプリに関するHamid Mahmood のセッションに参加していたのですが、データ仮想化に対するコントロール レベルのサポートを見て興奮しました。残念ながら、 IVirtualizingVectorIIncrementalLoadingVectorを実装する方法についての詳細は示されておらず、インターフェイス自体を見てもその方法は明らかではありません。誰でもサンプルを投稿できますか?

SO に関する追加のボーナス質問 - IAsyncOperation (IIncrementalLoadingVector の実装で必要) を実装する方法は、「ゼロから」コーディングするよりも簡単ですか?

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

.net - リストボックスデータの仮想化と複数選択

バッキングデータを含む多数のアイテムを含めることができるリストボックスがあります。データの仮想化を処理するために、ObservableCollectionと同じインターフェイスを実装し、必要に応じてバッキングデータを起動できるコレクションを作成することで、WPFのUI仮想化に結び付けました。

これは正常に機能します。リストボックスで複数選択を導入すると、問題が発生します。リストボックスはインデックス(SelectedItems)ではなくオブジェクトごとに選択されたアイテムを管理するため、すべてのアイテムを選択すると、すべてのバッキングデータがスピンアップされ、リストボックスによってメモリに保持され、データの仮想化が無効になります...

オブジェクトではなくインデックスによる選択を管理するためにListBoxを書き直す以外に、これが発生しないようにする方法はありますか?

ありがとう!

エリック

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

wpf - データベースからのデータを使用して WPF DataVirtualization を実装する方法は?

SQL サーバー データベース ストア プロシージャからデータを収集する WCF サービスに接続されているアプリケーションがあります。UI 側からは、大量のデータの表示を最適化するために、DataVirtualization の使用に関する多くの記事を読みました。

しかし、かなり多くのことを読んだ後、データベースからのデータに対してそのようなソリューションをどのように実装する必要があるかは明確ではありません。

すべてのレコードをテーブルから 1 回呼び出してから、UI 側から仮想化全体を処理する必要がありますか?それとも、データベースはすでにページ化されたレコードを返す必要がありますか?

SQlデータとUI側の仮想化を使用したサンプル実装、またはそれを示す良いリンクがあればうれしいです。

当分の間、サンプルコレクションのデモを含むサンプルプロジェクトを見てきましたが、データベースのものに対しては何もありません。

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

wpf - WPF データ仮想化

データがストアド プロシージャから取得される WPF DataGrid があります。そのデータを仮想化する方法を知りたいです。ADO.NET Entity Framework を使用しています。データベース内のデータは定期的に変更され、ストアド プロシージャを介して定期的に取得する必要があります。前もって感謝します。