2


0

設計時のデータテンプレート

私がWPFで最初に試みたことの1つで、私は少し遠すぎました。

そのプロパティの1つに応じて異なるDataTemplateを必要とするオブジェクトがあります。 つまり、 `+ if(object.property ==" multi ")+`の場合、テンプレートはコンボなどである必要があります。

今、私は先に行き、明らかに必要なテンプレートを適用するためにDataTemplateSelectorを使いました。 そして実行時にそれは動作します。 DataTemplateSelectorは適用する適切なテンプレートを見つけるためにApplication.Current.MainWindow.FindResourceを使用し、設計時にApplication.Currentは私のアプリケーションではないのでリソースが見つからないため、設計時vs2008デザイナーが不平を言う例外をスローします。

他の人にもテンプレートを変更してもらいたいのであれば、これを設計時にサポートする必要があります。

私の問題に対する解決策はありますか? 私のアプローチ全体は完全に欠陥がありますか?

3 Answer


1


テンプレートの種類ごとにテンプレートセレクターに依存関係プロパティを追加し、XAMLでテンプレートを参照できます。


あるいは、分離コード内でテンプレートセレクタをインスタンス化して割り当てるだけです。


0


これは私の頭のすぐ上にあるので、うまくいくかどうかはわかりませんが、データトリガーを使用して適切なテンプレートをセッターで割り当てることについてはどうでしょうか。

何かのようなもの"

...


0


私は自分の質問に対する答えを見つけたと思います(それ自身の問題もありますが)。

DataTemplateSelectorには、可能なテンプレートを保持するためのパブリックプロパティがあります。 XAMLでDataTemplateSelectorをインスタンス化するときには、関連するテンプレートを渡します。

_ _

これにより設計時サポートが達成されます。 一方、セレクタをインスタンス化するときに可能なテンプレートは何かを知っておく必要がありますが、必ずしもそうとは限りません。