0

私の問題は次のようになります。

私は2つのリストボックスを持っています:

1つはPhotosタイプの写真と呼ばれるコレクションにバインドされ、もう1つは同じ写真コレクションにバインドされているCollectionViewSourceにバインドされます。

listBox1->写真(ここでは、listBox1はもちろん写真のデフォルトのCollectionViewにバインドされており、写真に直接バインドされていません。)

ListBox2->cvs->写真

両方のコレクション(デフォルトのコレクションと私のCVS)には、表示されるアイテムを8アイテムから5アイテムに減らすフィルターがあります。

今私は2つのラベルを持っています。1つはphotosオブジェクトのCountプロパティにバインドされ、もう1つはソースがcvs(my CollectionViewSource)オブジェクトであるCountプロパティにバインドされます。

最初のラベルには数字の8が表示されています。これは、デフォルトのCollectionViewSourceをフィルタリングしているにもかかわらず、写真の数が8のままであるためです。

2番目のラベルは番号5を示しています。

私がcvsへのバインドについて学んだことは、WPFがソースオブジェクトをcvsからアンラップし、Path = Countが写真である基になるオブジェクトに関連しており、ここでの数も8である必要があるということです。

誰かが私がどこで着ているのか説明できますか?

ありがとう!

4

1 に答える 1

2

バインディングは、ソース コレクションではなくビューにバインドします。コレクション ビューにはCount、元のコレクションではなく (フィルター処理された) ビューのアイテム数を返すプロパティもあります。

(デバッガーを使用してView、通常、 のプロパティがインスタンスまたはそのサブクラスの 1 つでCollectionViewSourceあるオブジェクトになることを確認できます。バインディングは暗黙的に にバインドされます) 。CollectionViewView.Count

元のカウントにバインドするには、パスを使用しますSourceCollection.Count

于 2011-07-17T11:10:45.537 に答える