問題タブ [collectionviewsource]

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

wpf - CollectionViewSource グループ行を取得しますか?

WPF ListBox に日付を表​​示します

各グループ ヘッダーで、それに関するデータを表示する必要があります。

現在のグループに関連付けられている ParentID を取得するにはどうすればよいですか?

アンジェラ

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

.net - XAML内でのみリストビューの並べ替えプロパティ/方向を変更

私は単純なものを持っていてListView、内容を数値またはアルファベット順に、昇順または降順で並べ替えたいと思っています。ドロップダウンボックスから選択します。並べ替えを実行するために使用できることは理解CollectionViewSourceしていますが、SortDescriptionまたは方向をその場で変更するにはどうすればよいですか?

アップデート:

さて、CVSをそのように設定しました。viewModelはListViewが現在バインドされているものです。PropertyNameを現在選択されているコンボボックスアイテムのプロパティにバインドする必要がありますPropertyName。コンボボックスは、並べ替えるプロパティ名を公開するカスタムリストにバインドされています。

それは私が使用しようとしているPropertyNameについて不平を言います:

タイプ「SortDescription」の「PropertyName」プロパティに「Binding」を設定することはできません。「バインディング」は、DependencyObjectのDependencyPropertyにのみ設定できます。

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

wpf - リストボックスでの数値文字列の並べ替え

ItemSourceがバインドされているListBoxがありCollectionViewSourceます。CVSソースはXmlDataProviderです。したがって、ListBoxには、指定したすべてのノード(名前属性)が一覧表示されます。これらのノードには属性があり、ListBoxをそれらでソートする必要があります。問題は、基になるデータがxmlであるため、すべての値(ノードの属性)が文字列ですが、一部の値は数値を表していることです。で並べ替えると、CollectionViewSource.SortDescriptions.add (...)これらの(文字列)値がアルファベット順に並べ替えられるため、2,10,5のシーケンスは、2,5,10ではなく10,2,5として並べ替えられます。どうすればこれを解決できますか?

解決策がListViewのCustomSortにある場合、基礎となるXmlDocumentを使用してこれを行う方法の簡単な例を教えてください。

IComparerを実装するクラスを書くのと同じくらい簡単だと思いましたが、どういうわけか私は迷子になりました。属性の名前をメソッドに渡したかったので、CVSからすべての属性を「抽出」し、それらをfloat(この場合)に変換して、標準関数で並べ替えることができました...しかし、私は完全に失われましたこのCustomSortが正直にどのように機能するかについて...

XmlDocumentを捨てることなくこれが可能であることを願っています、なぜならそれは一種の与えられたものだからです:)

よろしく

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

c# - CollectionViewSourceの初期化により、リストボックスのSelectionChangedが発生します

私は何かを逃したかもしれませんが、私はすでにこれで頭を打ちました。

CollectionViewSourceを定義しました:

およびリストボックス:

また、コードビハインドのpackagesViewSource初期化があります。

そしてライン

イベントを伴う

そしてあなたが推測できるように

そこの。

私は何を間違えますか?

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

wpf - DataGrid CollectionViewSources を並べ替える WPF ListCollectionView を作成する方法

ここに私の CollectionViewSources があります:

現在、相互にデータをフィードする次のコントロールがあります。

ウィンドウの DataContext は、すべてのコントロールを収容する Grid を介して供給されます。

コンボボックス:

リストボックス:

最後に、ソート可能にしようとしている DataGrid: (今のところ 1 つの列のみ):

これまでの私の正確なコードは次のとおりです。

ブログBea Stollnitz のブログから取得した CollectionViewSource に含まれる並べ替えプロパティを処理するために、ListCollectionViews を作成することの重要性を読み、理解しました。

ただし、Null Reference Exception Unhandled: "オブジェクト参照がオブジェクトのインスタンスに設定されていません" というエラー メッセージが引き続き表示されます。

この問題を解決するにはどうすればよいですか? ListCollectionView をさらに定義する必要がありますか、それとも ICollectionView を確立する必要がありますか? 私の PartNum 列には、数字と場合によっては文字で始まる部品番号が含まれています。標準のソート方向は適用されますか?

0 投票する
4 に答える
8644 参照

c# - CollectionViewSourceを使用したListViewの実装-更新されませんか?

私は、Sourceプロパティが私のクラスのivarに設定されているListViewの設定に取り組んでいますCat

それぞれCatにオブジェクトがObservableCollectionあります。Trait

次に、このコレクションにSourceプロパティを割り当てます。Traits

これは正しく機能し、Traitオブジェクトは私のに正しく表示されますListView

問題は、この基になるコレクションを変更して_traitsも、UIが正しく更新されないことです。たとえば、これは次のとおりです。

UIですぐに効果がないようですが、次のSourceようにプロパティをリセットすると、次のようになります。

その後、ListView適切に更新します。ただし、アイテムの追加/削除時にUIを更新したいので、不足しているものがあるはずです。

編集:は私のXAMLファイルCollectionViewSourceに適用されています:ListView

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

c# - CollectionViewSourceの動的な並べ替え

さまざまなプロパティを持つCarクラスがあります。

静的なCarsコレクションクラスがあります。このクラスでは、簡単にするために、オブジェクトデータプロバイダーを介してXAMLで利用できるようにする一連の車のアイテムを定義しました。

XAMLで定義されたコレクションビューソースがあり、ObjectDataProviderに正常にバインドされます。

コレクションを表示するリストボックスがあります。

すべての標準チュートリアルで推奨されているように、ソートをCVSに追加しましたが、すべて正常に機能します。

私の質問:別のフィールドで並べ替えたいとします。確かに、顧客にコードを提供することなくこれを変更する方法があります。そこで、コンボボックスを実装しました。

次のコードを使用して、プロパティのリストをCarクラスからコンボボックスにロードしますが、プロパティのリストを取得するだけではありません。データ型も取得します。これは欲しくない。

結果(コンボボックスに表示されるもの):

私の目標は、プロパティ名をコンボボックスにロードすることです。次に、選択したプロパティ名を使用して、次のようなコード行を作成します。

ComboBox.SelectedItem.ToString()には、ソートされるプロパティの名前が含まれます。

では、プロパティ名の前にあるデータ型を削除するにはどうすればよいですか別のリストにあらゆる種類の厄介な読み込みを実行してから、右から最初のスペースを探してその前のすべてを切り刻む一連の文字列処理を実行できることを私は知っています。しかし、確かにもっと簡単な方法があるはずです。

事実上、私が探しているのは、ユーザーがCarクラスの別のプロパティでソートできるようにすることです(したがって、プロパティをどこかにロードして、ユーザーが選択できるようにする必要があります。したがって、コンボボックスです)。私が求めているのは、非常に基本的な要件のように思われるので、すべての文字列操作コードなしで、できればあまり反映せずに(知らないうちにすでに使用している場合を除いて)プロパティのリストを取得する簡単な方法がなければならないということです。

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

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

c# - CollectionViewSource C#から並べ替えを削除します

私は、MSDNや多くのチュートリアルで見られるように、コレクションビューソース(CVS)を実装しています。私の場合、Carクラスと、オブジェクトデータプロバイダー(ODP)を介してXAMLに表示されるCarsCollectionクラスがCVSにリンクされています。それはすべてうまくいきます。

並べ替えを追加し、最終的に、ユーザーが並べ替えるCarクラスのプロパティを選択できるようにする段階に到達しました。

次に、セカンダリソートを追加します。私の問題は、並べ替えを追加することではなく、削除することです。私の問題はこれです。私のコードでは、プライマリソートが最初に存在しない限り、セカンダリソートは発生しません(セカンダリ制御は無効になります)。たとえば、2次ソートを実行すると機能しますが、ソートする別のプロパティを選択しても何も起こりません。これは、3番目の並べ替えが追加されているためです。別のプロパティを選択しても、何も起こりません(4番目の並べ替えが追加されます)。

次のセカンダリソートを追加する前に、最後に適用されたセカンダリソートを削除できる構文がどこにも見つかりません。

一次ソート[0]と二次ソート[1]の2つの項目しかないことを考えると、次のようなコードを使用できるはずです。

しかし、これは機能せず、選択項目のコンボボックスを空にすることさえあります(実際の質問ではありません)。

私はこのようなことを試みています:

セカンダリコンボボックスから選択したときにそこに配置されたため、存在することがわかっているソースから実際のアイテムを削除します。しかし、これは機能するはずですが、何らかの理由で機能しません。

以下は私のコードの一部です:

基本的に、最初に前の2次ソートを削除し、次に新しいソートを追加して、コレクションビューソースに常に2つのソートのみが存在するようにするために必要なコードを探しています。次にこれを拡張して、3番目、4番目、またはその他のレベルの並べ替えを許可すると、リストには常にその数のアイテムしかありません。しかし、私が設定した方法のために、2番目のレベルが最初に存在しない限り、3番目のレベルは存在できません。したがって、ある種の取り違えはあり得ません。

これを実装する方法についてのアイデアはありがたいです。

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

c# - コレクションビューを SQL Server データベースのテーブルの複数のフィールドまたは列でフィルタリングすることは可能ですか?

以下のコードでは、テーブルの姓の列に基づいてのみフィルター処理できますが、複数のテーブル列を使用してフィルター処理できますか?

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

c# - ListView 内にあるコンテキスト メニュー内でコマンドを viewModel にバインドする

ViewModel で定義したコマンドにコンテキスト メニュー項目をバインドしようとしています。コンテキスト メニューは、CollectionViewSource にもバインドした ListView 内にあり、これが問題の原因だと思います。

listView コレクションで選択した項目を ViewModel にバインドできましたが、同じ方法を使用してコンテキスト メニュー項目コマンドを ViewModel にバインドしようとしても機能しません。誰かが以下のすべてのコードを読んで、私が間違っていることについての考えを教えてくれることを願っています.

Ps。アプリケーションの内容がわからないようにするために、いくつかの名前を変更する必要がありました。

私の ViewModel では、次のように定義しました。

次に、私のビューでは、次のように ListView をセットアップしました。

CollectionViewSource は次のように定義されます。