2009-06-28 26 views
0

IEnumerable ItemsSource DependencyPropertyを公開するwpfユーザーコントロールがあります。私はこのプロパティを自分のUserControlのListBoxコントロールにバインドします。WPF UserControlをCompositeCollectionで使用する方法

私は、CompositeCollectionが与えられたときに私がどのように私のユーザコントロールを動作させることができるか知っています。現在、私はこのように私のコントロールを利用しています:

<my:uc> 
    <my:uc.ItemsSource> 
    <CompositeCollection> 
     <CollectionContainer Collection="{My Binding}"></CollectionContainer> 
     <CollectionContainer Collection="{My Binding}"></CollectionContainer> 
    </CompositeCollection> 
    </my:uc.ItemsSource> 
</my:uc> 

私は、これは、リストボックスでこれらのCollectionContainersの内容を表示したいのですが、現時点ではそのコンテナを列挙ではありません。リストボックスに表示される唯一の項目は、2つの "System.Data.CollectionContainer"項目です。

[b]編集:[/ b] XAMLデザイナーは、 "Property 'ItemsSource'が 'CompositeCollection'タイプの値をサポートしていないことを通知します。私はこれが私の問題だと思う..しかし、私はそれを "サポート" CompositeCollectionにする方法はありますか?

答えて

0

正解は、ItemsControlを拡張するクラスを作成することでした。コントロールを設計するときはXAMLを使用できませんが、CollectionContainersをサポートする特別なItemsSourceプロパティが用意されています。コントロールのビューは、ContentTemplateプロパティで定義する必要があります。

0

あなたが得ているのは、オブジェクトのToStringメソッドです。これは、デフォルトでは型の名前を返します。

ToStringをオーバーライドして、リストに表示する値を返してください。

+0

問題は、CollectionContainer自体がレンダリングされるべきではなく、子要素を提供する必要があるということです。 –

関連する問題