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

wpf - ListCollectionView.AddNewによって作成されたオブジェクトのタイプ

ListCollectionView.AddNew作成するオブジェクトのタイプをどのように決定し、どのように影響を与えることができますか?

いくつかのタイプ(、、、および)の階層がありBaseDerivedA現在DerivedBWPF ToolkitがオブジェクトDataGridを作成しDerivedAています(なぜ、わかりません-おそらくグリッド内のほとんどすべてのデータがそのタイプであるためです)が、DerivedB代わりにオブジェクトを作成するのが好きです。

更新:新しいクラスを派生ListCollectionViewさせて新しいメソッドを実装しようとしましたが、もうすぐAddNewです。残っている唯一の問題は、新しいアイテムを追加した後、新しい新しいアイテムのプレースホルダーが追加されないことです。追加できるアイテムは1つだけです。私の現在のアプローチは次のようになります。

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

wpf - XAMLのICollectionView.Countプロパティにバインドします

テキストボックスをXAMLのフィルター処理されたコレクションビューの数にバインドしようとしています。エラーは発生しませんが、出力も発生しません。誰かがこれを行う方法を知っていますか?

これが私のXAMLのスニペットです:

..。

基本的に、リスト内のフィルタリングされたアイテムの数を表示しようとしています。

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

wpf - WPF Toolkit の Datagrid と ListViewCollection の SortDescriptors

データグリッドに奇妙な問題があります。私は 2 つの項目を持つリストを持っています。すべての項目の中に ListCollectionView があります。

データグリッドは、選択した項目の ListCollectionView にバインドされます。

選択したアイテムの ListCollectionView に並べ替えの説明を (コードで) 追加すると、アイテム 2 を選択してからアイテム 1 を再度選択すると、ListCollectionView の sortDescription は「なくなりました」

何か案は?

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

wpf - 同じListCollectionViewで複数のフィルタを使用するWPF

ViewModel の ListCollectionView にバインドされた ListView を使用して、MVVM デザイン パターンを使用しています。ListView のフィルター処理に使用するコンボボックスもいくつかあります。ユーザーがコンボボックスから項目を選択すると、ListView は選択された項目に対してフィルター処理されます。すでにフィルタリングされているものの上にフィルタリングしたいときはいつでも、前のフィルターが元に戻されます。フィルターを外す場合も同様です。1 つのコンボボックスのフィルターを削除すると、すべてのフィルターが削除され、元のリストが表示されます。同じ ListCollectionView に複数の個別のフィルターを設定することは可能ですか?

私は何か間違ったことをしていますか、それとも単にサポートされていませんか? ここで私のアプリケーションのスクリーン キャプチャを見つけて、私が達成しようとしていることを確認できます。これがフィルタリングのための私のコードです...

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

wpf - グループ化されたアイテムの合計をListViewに表示する

MVVMデザインパターンを使用してWPFTimeCardアプリを作成しており、ユーザーが1日ごとにグループ化して記録した合計(合計)時間を表示しようとしています。次のXAMLを使用して、すべてのTimeCardデータをグループに分割したListViewがあります。

これも可能ですか?最初は、CollectionViewGroupの部分的なクラスを作成し、独自のプロパティを追加すると思いました。しかし、これがうまくいくかどうかはわかりません。おそらくもっと良い解決策があります...何か提案はありますか?

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

wpf - WPF ListView.CurrentChanged のバインディングが速すぎる

私の場合:

  • MVVM
  • ListView+Details (カスタム UserControl)
  • MV.Items にバインドされたリスト (IsSynchronizedWithCurrent=true)
  • MV.Items.Current にバインドされた詳細
  • MV.Items.Count == 100
  • 詳細を読むのに約0.2秒(レイジーモード)

リストの下向き矢印を押したままにすると、非常に奇妙なことが起こります。

  • リスト項目の順序変更
  • ランダムな順序での現在の変更
  • CPU 使用率が大幅に増加し、最終的にすべてがハングします。

タイマーを開始するか、バックグラウンドでハンドラーを実行する必要があるという投稿を読みましたが、すべてのバインディング WPF が私のために行うため、それを行うことはできません。

CurrentItem を受け入れる前にしばらく待つように DetailsControl のバインディングに指示する方法はありますか? それとも、クリーンなソリューションをやめて、それを処理するために MV にカスタム コードを記述する必要がありますか?

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

datatable - ItemsSource としての DataTable の WPF BindingListCollectionView から ListCollectionView へ

ItemsSource として DataTable を持つ ListView でカスタム並べ替えを行いたい:

そして、これは私の並べ替え関数の最初の行です:

2 行目は、次のような execption をスローします。

「System.Windows.Data.BindingListCollectionView」を「System.Windows.Data.ListCollectionView」にキャストできません

誰にも解決策はありますか?Thx 4つの答え

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

wpf - 別のスレッドでコレクションをループし、バインドされたリストボックスに現在のアイテムを反映するにはどうすればよいですか?

ObservableCollectionにバインドされたListBoxがあります。コレクション内のアイテムはそれぞれ、そのステップを実行するためのメソッドを持つ異なるステップを示します。私がやりたいのは、コレクションを介してBackgroundWorkerループを作成し、各アイテムのアクションメソッドを実行して、現在のステップをListBoxに反映させることです。

私の最初の反復はスレッド化を使用せず、ステップを実行するためだけのものでした。これで、ListCollectionViewを作成し、ObservableCollection内のデータを表すように設定し、ObservableCollectionの代わりにListBoxのItemsSourceをバインドしました。CurrentItemを明示的にインクリメントしているにもかかわらず、手順を実行するとUIスレッドの更新がブロックされることに気付きました。

BackgroundWorker内でListCollectionViewを使用したいのですが、私が見つけたほとんどの例は、リストの内容を変更したり、リストを並べ替えたりすることを前提に書かれています。私はこれをしたくありません。反復ごとにCurrentItemをインクリメントしたいだけです。単に参照するだけでは、UIスレッドの項目に関連付けられており、コンパイラーが文句を言うので、それほど遠くはありません。任意の考えやポインタをいただければ幸いです。

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

wpf - ItemsSource での DataGrid の並べ替え保持が変更されました

私はMVVMアプローチを使用しています。

AllSomethingViewModel と AllSomethingView という ViewModel と View があります。ビュー モデルには、SomethingViewModels と SelectedViewModel のリストが含まれています。ビューには、AllSomethingViewModel の SelectedVM プロパティにバインドされたユーザー コントロールと、VM を選択できるリストボックス コントロールが含まれています。基本的に、新しい VM を選択すると、usercontrol の DataContext が変更されるため、SomethingViewModel に関連付けられたビューが新しい情報で更新されます。

SomethingViewModel には、ObservableCollection(DataPoints) データと呼ばれるオブジェクトのリストが含まれています。

データにバインドされた DataGrid と、データのメンバーにバインドされた列が定義されています。これはうまくいきます。ビューを変更すると、このデータグリッドが更新され、すべてがうまくいきます。

私が直面している問題は、データ コンテキストが変更されたときに、データ グリッドに適用される並べ替えを保持したいということです。

SomethingViewModel に関連付けられたビューでは、DataContextChanged イベントをサブスクライブできますが、並べ替えを適用するためにそこから何をすべきかわかりません。

例えば。私は2つのSomethingViewModelsを持っています。したがって、私のリストには2つのオプションがあります。最初のものを選択すると、データを含むデータグリッドが取得されます。データグリッドで、DateCreated の昇順で並べ替えることにしました。次に、2 番目の VM に移動します。データ コンテキストが変更されるため、グリッド内のデータは更新されますが、並べ替えられなくなります。