問題タブ [compositecollection]
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.
.net - データベースからのバインドを使用して、WPF のコンボボックスにオプション "All" を追加する方法
ComboBox私はWPFで以下を持っています。CompositeCollection でオプションALLを追加できることは知っていますが、方法がわかりません。誰かが短いチュートリアルで私を助けてくれたら素晴らしいでしょう.
c# - observablecollectionではなくcompositecollectionを使用する利点は何ですか?
適用可能なビュー モデルのリストが必要であり、複合コレクションを作成するか、それらが継承する共有インターフェイスを作成するかを検討しています。1 つの方法が優先されますか?
複合コレクションは、基礎となるコレクションから独立したアイテムのインデックスを維持しているため、複合コレクションのアイテム # 0 (アイテム タイプ A) 1 (アイテム タイプ B) 2 (アイテム タイプ A) 3 (アイテム タイプA) を入力し、リスト内の順序を維持します。
2 つの方法に大きな違いはありますか?
私が通常行っていることをもう少し詳しく説明したいと思いました。通常、selectedItems のリストが必要です。Object 型の ObservableCollection を作成し、データ型に基づいてツリービューに異なるデータ テンプレートを適用させることができます。ただし、型の安全性を確保し、コレクション内でオブジェクトがスローされるだけではないことがわかっている方がよいと考えたため、代わりにインターフェイスを実装しました。しかし、インターフェースを実装するオブジェクト間で十分な共有プロパティがなく、共有インターフェースを作成しようとするのはばかげていると感じることがあります。
考えられる型ごとに個別のリストを使用して複合コレクションを実装する方が理にかなっている可能性があります。
wpf - キャンバス上の ListBox: 複数のキャンバスをオーバーレイするか、CompositeCollection を使用しますか?
mvvm を使用した wpf では、Canvas を ItemsPanelTemplate および DataTemplates として ListBox を使用して、外観をカスタマイズします。
最初にタイプ 1 のすべてのアイテムを図面に追加し、次にタイプ 2 のすべてのアイテムを追加して、パフォーマンスを改善し
たいと考えています。Canvas を ItemsPanelTemplate として 2 つの ListBox を作成でき、それらはオーバーレイになります。
パニングとスクロールは、バインディングによって同期できます。
このようにして、両方のリストの PropertyChanges を互いに独立して発生させることができます。
質問: キャンバスのオーバーレイがパフォーマンスに良いか悪いかについて経験はありますか?
1 つの ListBox の ItemsSource に CompositeCollection を使用してこれが可能かどうかはわかりません。または、両方の型に共通のサブクラスを与えて、ObservableCollection のままにしてください。
質問: CompositeCollection を持つリストに、コレクションのさまざまな部分に個別の PropertyChanges を与えることができると思いますか?
編集:
キャンバスに多数のポイント、ライン、ラベルがあり、それぞれが異なるタイプですが、共通の基本タイプがあるとします。DataType="{x:Type my:Point}"DataType:などを使用して DataTemplate を選択しますDataType="{x:Type my:Line}"。
最初に、できるだけ早くユーザーに行を見てもらいたいと思います。上げるPropertyChanged("Lines")と、行の ListBox+Canvas が表示されます。
バックグラウンドPropertyChanged("Points")ワーカーで私が発生させ、ポイントの ListBox2+Canvas2 が表示されます。
別の backgroundworker で実行するPropertyChanged("Labels")と、ラベルの ListBox3+Canvas3 が表示されます。
c# - 複合コレクション内の監視可能なコレクションを備えた WPF コンボボックス
複合コレクションを使用して、観察可能なコレクションとヘッダー行をコンボボックスに入力しようとしています。ヘッダーはありますが、OC オブジェクトを取得できません。私はOCを使い始めたばかりなので、何か基本的なものが欠けているかもしれません。
顧客クラス:
依存関係プロパティである OC をデータテーブルから設定します (OC が正しく設定されていることを確認しました)。
usercontrol リソースで、VM を静的リソースとして指定します。
私が読んだ投稿から2つの異なる方法を試しました。
x:reference を使用してリソースのコレクションを使用する最初の方法:
ソースを指定する 2 番目の方法:
c# - ContentProperty はリストでは機能しません
アーカイブしたいのは、WinRT 用のCompositCollectionに似たクラスです。
このために、クラス CompositCollectionView があります。このクラスは ObservableCollection を実装し、Collection プロパティ (それ自体が ObservableCollection) を持ちます。コレクションに追加されたすべてのオブジェクトは、それが CollectionContainer でない限り、CompositeCollectionView に追加されます。CollectionContainer の場合、このすべてのアイテムが追加されます。
CompositeCollectionView と CollectionContainer の両方に、ObservableCollection のプロパティ Collection があります。どちらにも ContentProperty が設定されています。CollectionContainer の場合、これは機能します。ObservableCollection を実装する CompositeCollectionView の場合、項目は直接 CompositeCollectionView に追加されます。
Collection が Attribute よりも高い優先順位を持っていることを縫い合わせます。これを変更する方法はありますか?
wpf - CompositeCollection のソース: 別のコントロールのデータ コンテキストに対してバインドできないのに、CollectionViewSource を使用する必要があるのはなぜですか?
私が最近尋ねた別の質問では、CompositeCollectionのさまざまなソースにアクセスするには、 を使用するように言われましたListBox。
この例では、XmlDataProviderダミー データを提供するために a を使用しました。ただし、データを含むビューモデルがあります。
ListBoxビュー モデルのデータに対してmy をバインドするのに時間がかかりました。最終的には理解できましたが、以前のアプローチがうまくいかなかった理由を理解したいと思います。
成功の鍵は CollectionViewSource でした。私の最初の試みは次のとおりです。
私の考えは、適切な DataContext を持つ Window を見つけて、データにバインドすることでした。FindAncestorまたは経由でそれを行うことができるElementNameので、両方を試しました。それは私には非常に論理的に思えましたが、どうやら私が間違っていたようです。アプリケーションを実行しても何も表示されませんでした。
また、データ コンテキストを持つ別のコントロールにバインドしようとしました。例えばStackPanel。
では、なぜFindAncestorand ElementName1CollectionViewSourceでデータを取得しないのに、明示的に提供する必要があるのでしょうか?
これが機能しているコードです。
1いいえ、ウィンドウに名前を付けるのを忘れていませんでしたし、タイプミスもありませんでした。
wpf - CompositeCollection を使用してコレクションのコレクションを平坦化しますか?
私はObservableCollectionいくつかのMyParentオブジェクトを持っており、それには独自ObservableCollectionのMyChildオブジェクトがあります。ここで、すべての オブジェクトをグリッド ビューで表示したいと考えていMyChildます。これは当然、フラット化されたコレクションを要求します。
CompositeCollectionは有望に見えます。
Q:任意の数のコレクションを にラップすることは可能CompositeCollectionですか?
そうでない場合、代替手段はありますか?