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

r - 特定の半径の経度と緯度で R にデータを集約する

場所の経度と緯度を含むセンサー データがあります。次のデータポイントがあります。

ここに画像の説明を入力

そして、次のように、互いに一定の距離内にあるポイントをルートに沿った 1 つのポイントに集約したいと思います。

ここに画像の説明を入力

新しい各ポイントは円の中心にあり、特定の領域のすべてのセンサー読み取り値の平均が含まれます。経度と緯度から精度を削除しようとしましたが、結果が悪く、ルートの形状が失われます。

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

animation - Matplotlib での 3D 散布図シーケンスのアニメーション化

3D の時系列データがあります。

インデックスに沿ってプロットが進むにつれて色が変化するベクトル データの散布図。

一度に 1 つずつ表示されるポイントをアニメートするにはどうすればよいですか? 私はこの答えを見つけましたが、新しいポイントが古いポイントを取り除かないようにアップデータ機能を変更する方法を理解していません。

おまけ:ボリュームが乱雑にならないように、古いポイントが時間の経過とともに消えていくことができれば素晴らしいでしょう.

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

c# - データグリッドと行の詳細を使用した Windows 10 のデータ仮想化

Paul McCleanによるこのプロジェクトに基づいて、ItemsSource が AsynchronousVirtualizingCollection にバインドされた行詳細を持つデータグリッドを使用しています。Windows 7、.Net Framework 4.5 を使用して、グリッド内の行を選択するときに問題が発生しました。不要なときにコレクション全体がフェッチされていました。このプロジェクトで説明されているように、データラッパーを使用してこの問題の解決策を見つけました。これは私にとってはうまくいきました。現在、同じフレームワークを使用して、システムを Windows 10 にアップグレードしました。選択は引き続き正常に機能しますが、行の詳細を表示したい場合、コレクション全体が再度フェッチされます。これは、Windows 7 システムでは発生しません。同じ問題に遭遇した人はいますか、それとも Windows 10 ではなく Windows 7 で動作する理由を説明している人はいますか? ありがとうございました

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

wpf - ListCollectionView を介した DataGrid の仮想化

特定のデータベース テーブルへの読み取りアクセスを提供するカスタム リストに対して ListCollectionView を使用しています。以下は、カスタム リストの定義です。

問題は、DataGrid の初期作成中に、this[int index] メソッドがすべての単一行 (つまり、0 から Count - 1) に対して呼び出されることです。

テーブルには何百万もの行が含まれる可能性があり、読み取り操作にはコストがかかるため (つまり、レガシー HDD での SQLite)、そのような操作は受け入れられません。さらに、画面が 50 程度のアイテムしか表示できない場合、何百万行ものすべてをロードするのは意味がありません。

テーブル全体をフェッチするのではなく、DataGrid が表示されている行のみをフェッチするようにしたいと考えています。そのような作業はどのように可能ですか?

(PS DataGrid自体で仮想化が有効になっていることを確認しました)

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

wpf - 特定の列でソートすると WPF DataGrid が仮想化を失う

IList (および IEnumerable ではない) を実装するカスタム ItemsSource にバインドされた WPF DataGrid を使用しています。カスタム ItemsSource はデータの仮想化を実行し、必要に応じて項目のページのみを読み込みます。MyDataGrid は実際には DataGrid から継承し、DataGrid の並べ替えメソッドの処理をオーバーライドして、並べ替え中にデータの仮想化を維持できるようにします。MyDataGrid の UI 仮想化を有効にしました。

アプリケーションを実行すると、MyDataGrid は問題なく表示され、約 20,000 個のアイテムがあることがわかり、ItemsSource に最初の 20 個程度のアイテムのみを要求します。次に、列ヘッダーをクリックしてさまざまな列を並べ替えることができます。また、MyDataGrid が最初の 20 程度のみを更新するように要求したため、ItemsSource は 40 項目の最初のページを再読み込みするだけで済みます。

しかし、姓の列をクリックして並べ替えると、MyDataGrid は UI の仮想化を失い、最初の 20 個程度しか必要としないにもかかわらず、ItemsSource にすべての項目を読み込むように要求します。インデックス(this [0])ですべてのアイテムを要求するのを見ることができます。

ICollectionView、UI 仮想化、およびデータ仮想化を調査してみましたが、それが適用される可能性があると思われる唯一のことは、複数の行選択に関するものです (データ仮想化を使用した DataGrid 行要求パターンで、 MyDataGrid の SelectionMode を Single に設定したので、これは当てはまりません。

もう 1 つのヒントは、姓で並べ替える前に、MyDataGrid の最初の項目の姓が V の文字で始まること (アルファベットの最後) であり、実際に姓の降順でリストを並べ替えることができることです。仮想化を失うことなく。S で始まる最初の項目を持つ Title 列でも同じことが起こります。他の列では問題はありません。

何か案は?

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

c# - wpf でダイアログを繰り返し開いているときのパフォーマンスの問題

ウィンドウのビューモデルを作成し、それをウィンドウにバインドする起動ダイアログボタンがあります(UI仮想化が有効になっています)。最初のクリックでダイアログを起動するのに 1 秒しかかかりません。しかし、同じダイアログを非常に頻繁に開いたり、続けて開いたりすると、次の繰り返しのためにグリッド データ ソースを設定するのにより多くの時間がかかり始めます。一時停止してから再度ウィンドウを開くと、約 1 ~ 2 秒しかかかりません。

ただし、推奨されていない GC.Collect() を呼び出すと、グリッド データ ソースの入力には常に約 1 秒かかります。しかし、の呼び出し

繰り返しごとに時間がかかりました。

電話GC.Collectが良い選択肢ではないことはわかっています。アプリケーションのパフォーマンスを向上させる方法を誰か提案できますか?

私のマシンは非常に優れた構成になっているのに対し、ユーザーのマシンはそれほど高速ではない可能性があるため、ユーザーのマシンについてもっと心配しています。

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

c# - WPF - DataGrid で編集モードに入ると、VirtualizingStackPanel はすべての項目を要求します

を使用しDataGridていCellEditingTemplatesます。データ仮想化コレクションが使用されるためItemsSource(AlphaChiTech ソリューション)、オンデマンドで一度に 100 アイテムのサイズのページのみをフェッチします。

セルが編集フォームにダブルクリックされ、VirtualizingStackPanelすべてのアイテムが次々と要求されるまで、うまく機能します。もちろん副作用として、最終的にはすべてのページが要求されます。

この問題を回避する方法はありますか?

編集:

私の状況で人々を助けるかもしれない回避策を見つけました:

最終的に、編集フォームに切り替えた後、行の高さが同じままであるという条件の下で、VirtualizingStackPanel がすべての項目を要求していないことがわかりました。回避策の前は、私の編集フォームはわずかに高かったです。

ここで、編集フォームに切り替えても高さが変わらないように、セル (通常と編集の両方) のコントロールの MinHeight を設定します。

残念ながら、これは特定の条件下でのみ機能します。動作しない場合があります:

  • を使用してRowDetailsTemplateいます。見えるようになるとすぐに、仮想化が壊れます。行の詳細は行自体に属していると想定しているため、行の高さが再び増加します。

  • Collection の Reset イベントをそれぞれ CollectionView で発生させます。私の経験では、これは一般的に を使用したデータ仮想化のキラーですDataGrids

  • コレクションの値を下げCountます (これも、Reset イベントを問題なくスローします)。

Countコレクションのを増やすことが効果的だったのは興味深いことです。Countしかし、すぐに使用できる Reset イベントを発生させずに を変更する方法がないため (少なくとも私は見つけられませんでした)、AlphaChiTech の機能を強化する必要がありました (幸い、ソースは github にあります)。また、DataGrid'sアイテムはその後すぐに更新する必要がありますItemsControl。そうしないと、 とコレクションが矛盾した状態にあることを示す例外がスローされます。

行の詳細はオプションですが、データ仮想化を壊さずにアイテムを削除することは非常に重要です。したがって、問題はまだ残っています。私の回避策は、固定サイズのコレクションを持つ人々に役立つ可能性が最も高いですが、残念ながら私には役に立ちません。

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

data-binding - データ仮想化を使用して FlipView アイテム ソースを設定する際の問題

これは、以前の質問 ( UWP Problems Setting GridView Items source using x:Bind ) のフォローアップです。

その場合、Mirosoft のデータ仮想化サンプルのランダム アクセス ファイル データ ソースを使用していましたが、グリッドにはデータが取り込まれませんでした。問題は、プロパティ変更イベントを発生させていないことでした。グリッドがうまく機能するようになりました。

私の問題は、グリッド ビューの代わりに、フリップ ビュー コントロールでデータ ソースを使用しようとしていることです。データ ソースは初期化され、プロパティの変更通知が発生しますが、フリップ ビューには何も表示されません。

フリップ ビューで仮想コレクションのデータを表示できますか?

ここに私のモデルのコードがあります:

XAML での私の FlipView:

ありがとう、アドバイスをいただければ幸いです。

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

c# - WPF Listbox UI の仮想化が機能しない

基本的なリストボックス テンプレート

DataTemplater 項目テンプレートには、コントロールがバインドされたスタック パネルが含まれています。バインディング ソースは、データ セットのデータ テーブルです。

ここでの問題は、仮想化が機能していないことです。アイテム テンプレートで指定された C# コード ルックアップがあり、そのコードは、表示されているアイテムだけでなく、データ テーブル内のすべてのアイテムにヒットしていますか?

この問題を解決するにはどうすればよいですか?