2012-05-10 14 views
0

私のプロジェクトでは、スキャッタビューが必要ですが、サーフェスsdkで作業していない人のリストボックスと呼ぶことにしましょう:)そして、ビューモデル内のオブジェクトのobservablecollectionにバインドされています。オブジェクトの種類に応じて、別のデータテンプレート(画像、動画など)を使用します。WPFリストボックスの変更コンテナを実行時に

これらのアイテムのコンテナは、デフォルトではリストボックスアイテムです。

しかし、私はcustomListboxcontainerを作成したので、私はコンテナとして通常のlistboxitem以上必要な特別なオブジェクトがあります。ここでは、そのコンテナを使用する方法が見つかった場合:

Have a databound WPF Listbox generate subclassed ListboxItems

が、これは十分ではありません。私は、実行時にコレクションに追加された項目をチェックし、それに対する正しいコンテナ(listboxitem、customlistboxitem)を選択する必要があります。私は仕事が得られないようです。

誰かがこれを経験していますか?

Thxを、

ビョルン

+0

あなたが追加しようとしているアイテムについてもう少し具体的にすることができます。おそらく、特別なコンテナを必要としないかもしれません。あなたが本当にやっているのであれば、アイテム機能の追加をどのように実装したかを詳しく説明できます。 –

答えて

0

あなたは私があなたのListBoxのためDataTemplateSelectorを提供する提案項目の種類ごとに異なるテンプレートを提供する必要がある場合。私は、MSDNの例では、それを実装する方法についてはかなり明確だと思うが、それ以上の助けが必要な場合は私たちに知らせてください。

更新: は、ここであなたが始めるために別のtutorialです。

+0

助けてくれてありがとうが、それだけでは不十分だ。私は別のビューを持っているallreadyを使用していますが、いくつかのメソッドをオーバーライドする必要があるため、私は本当に別のコンテナが必要です。そして、datatemplateselectorでは、コンテナを選択することはできません。 –

+0

@BjornVdkerckhove ObservableCollectionをMyListBoxItemで埋めてListBoxのIsItemItsOwnContainerOverrideをオーバーライドすると、常にtrueが返されます。純粋なMVVMではありませんが、バインディングする前にコンテナを指定することができます。 –

+0

これは試してみる価値があります! –

関連する問題