0

内部にスタイリッシュな ComboBox を表示するカスタム コントロールを作成したいと考えています。1. LeafControl と 2. LeafComboBox です。

私は両方の ControlTemplate スタイルを同じ Generic.xaml ファイルに保持しましたが、これは正しくないと思います。LeafControl の初期化中は、LeafComboBox のテンプレート作成に依存するためです。

したがって、ロード中に例外が発生します:

エラー メッセージ:

「指定されたバインディング制約に一致するタイプ 'ControlsLibrary.LeafComboBox' でのコンストラクターの呼び出しで、例外がスローされました。」}"

内部エラーメッセージ:

"{"PropertyMetadata はタイプ 'LeafControl' に対して既に登録されています。"}

したがって、customcontrol1 で customcontrol2 を使用できるように、どこで Generics.xml テンプレートを定義する必要がありますか。

よろしく、マノランジャン

4

1 に答える 1

0

1 つのファイル内のすべての にデフォルトStyleのを提供することは完全に合法です。あなたの問題は、(おそらく) の 1 つ (または複数) をコントロールから他のコントロールにコピーして貼り付けたが、プロパティを更新していないことです。CustomControlgeneric.xamlDependencyPropertyLeafControlOwnerType

コントロール内でを検索し、代わりに置き換えてLeafControlください。同じオブジェクトに対して同じプロパティを 2 回定義することはできません。LeafComboBoxLeafComboBox

于 2013-11-05T12:11:21.403 に答える