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

c# - 1 つの項目を変更した後に Expander ヘッダーの前景色を変更する

みなさん、こんにちは。

エキスパンダーの項目を変更した後、エキスパンダー ヘッダーの前景色を変更するのに問題があります。

ここに私がすでに持っている私のWPFスニペットがあります:

値を変更した後に ListCollectionView を更新しようとしましたが、パフォーマンスが非常に悪いです。

助けてくれてありがとう...

更新:GroupStyleこれが定義されている 内の私のWPFスニペットです:

...そしてこのViewのViewModel:

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

wpf - ListCollectionView の変更時に SelectedItem が更新されている

私は WPF、MVVM、およびエンティティ フレームワークを使用しています。

私はデータ入力アプリケーションを使用しており、アプリで変更のキャンセルを有効にしようとしています。変更がキャンセルされると、すべての値が元の値にリセットされます。EF側のセットアップはすべて正しく行われていると思います。基本的に、変更されたリストにある場合、すべてのエンティティを未変更に設定するだけです。

私の問題は、ViewModel に戻ったときで、すべてのフィールドと派生プロパティを再設定しようとしています。最大の煩わしさはコレクションです。ListCollectionView にバインドする複数のコンボ ボックス コントロールがあり、SelectedItem を表すビュー モデルに追加のプロパティがあります。コレクションをリセットするとき、プロセスがコレクションを含むすべてのプロパティを再開できるようにしていました。コレクションを変更すると、選択したプロパティも変更しようとします。これに関する問題は、選択したプロパティを変更すると、バッキングエンティティが新しい値で更新され (ユーザーが項目を選択したかのように)、技術的に値を取り戻すことができないことです。

私が保存していたとき、私は実際に逆の問題を抱えていました。保存後、フォームは非編集モードになり、値は古い値に設定されます。編集中にフォームを再度開くと、正しい値が読み込まれます。これを修正するために、フォームに IsSynchronizedWithCurrentItem=true を追加しました。しかし今、編集中に値が古い値に戻るという逆の問題が発生しています。

この問題に対する私の現在の回避策は、コレクションが既に作成されていることを示す状態変数を保持することです。また、ビューモデルの再セットアップ時にコレクションのリセットをスキップします。

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

c# - ListCollectionView CustomSort 2 条件

ViewModel に ListCollectionView があり、これを ListBox にバインドします。文字列のコレクションがあり、最初に文字列の長さで並べ替え、次にアルファベット順に並べ替えたいとします。どうすればいいですか?

現在、独自の IComparer クラスを実装して CustomSort を使用して長さで並べ替えるように管理していますが、同じ長さの文字列でもアルファベット順に並べ替えるにはどうすればよいですか。

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

wpf - CollectionView を使用して INotifyDataErrorInfo をリッスンする方法

次のシナリオがあります。

XAML:

Nodes はObservableCollection、ListCollectionView を含むカスタムです。

Tこの場合は、Node私が興味を持っているもの (NodeResults と呼びます) を含む多くのプロパティを持つオブジェクトです。

NodeResults:

ObservableValidatableModelBaseを実装INotifyDataErrorInfoし、そのエラーを というコレクションに保存しますerrors

私がやりたいことは、 の個々Nodeの がCollectionViewに通知してListView、無効な (無効な がある) 個々のエントリがNodeResults画面上で強調表示されるようにすることです。

NodeResults私の最初の本能は、Node が'ErrorsChangedイベントにサブスクライブしてバブリングする必要があるためBubbleErrorsChanged、クラスのメソッドObservableValidatableModelBaseが必要であるということですが、それは機能していないようです。

別の可能性は - ListView には検証の例外を表示するためのデフォルトのテンプレートもありますか? そうでない場合、このようなものが機能する必要がありますか? (そうではありません...)

エラーが発生したかどうかに応じて、 Brushes.RedValidationExceptionToColourConverterまたは Brushes.White を返すだけNothingです。

注: テキスト ボックスを Nodes.NodeResults.SomeProperty に直接バインドしても問題なく動作し、期待どおりの結果が得られます。

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

wpf - .Net ItemCollection で IndexOf オブジェクトを取得する方法

ViewModel から、WPF DataGrid 内の行のフォーカスとハイライトをプログラムで移動する必要があります。DataGrid には 1 つの列しかありません。

そして、データコンテキスト ViewModel では:

これは、DataGrid の ItemSource をバインドしているため、データ フィールド「descr」の ViewModel にプロパティ自体がなくても機能します。

ViewModel では、View から ItemCollection を次のように渡すことで、View DataGrid のアイテムの ItemCollection にアクセスできます。

ViewModel に戻り、次のように DataGrid 項目を読み込みます。

その ItemCollection の DataGrid プロパティを保持できるように、ItemCollection へのキャストを保持したいと考えています。問題は、ItemCollection の IndexOf メソッドが機能していないことです。これを行ってクラス オブジェクト項目の 1 つのインデックスを見つけようとすると、-1 しか取得できません。

EDIT ------- これはメソッド try IndesOf のコード全体です

編集 --------------------------------- これは簡単なアプローチですが、ラムダ/フィルター式についてはまだ助けが必要ですとメソッド呼び出し

編集終了 ----------------------

デバッガーでは、_dgItems にクラス オブジェクトが表示されます。これを行うと、うまくいきます。

ただし、パラメーターが単なるクラス オブジェクトの場合、IndexOf メソッドは機能しません。問題は、DataGrid アイテムの ItemCollection へのキャストにあると思います。クラス Object をキャストする必要があります。myobject を、DataGrid から取得した ItemCollection で認識できるものに変更します。回避策はありますか? ありがとうございました。

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

c# - list を使用してオブジェクト リストを単一のリストに変換する

次のようなオブジェクトを含むオブジェクトリストがあります。

userrolesListは 1 つ以上持つことができますuserroleobjects

このリストを別のシステムに送信する必要がありますが、別のシステムは次のようなオブジェクトのリストしか受け入れません。

この場合、1 人のユーザーが 10 個のロールを持っている場合、10 個の異なるオブジェクトを他のシステムに送信する必要があります。これを簡単に作成し、パフォーマンスに影響を与えないようにする方法はありますか?