0

私はカスタムコントロールに取り組んでおり、いくつかのカスタムプロパティを自分から自分に渡すための最良の方法は何でしょうItemsControlItemsContainerItemsContainerプロパティは、その時点で使用できるはずのいくつかのカスタム値です。

カスタムコントロールを作成しているときに同じ問題が発生した人はいますか?これをコードで解決する最も一般的な方法は何ですか?

DataTriggersを使用したり、ItemsContainerのControlTemplateからRelativeSourceにバインドしたりするのは、最善の方法ではないと思います。

これを解決するためのオブジェクト指向の方法はありますか?

4

2 に答える 2

0

依存関係プロパティが必要なものだと思います。使用コントロールでいくつかを定義し、たとえばバインディングを使用してxamlに設定します。

于 2012-12-05T09:39:29.457 に答える
0

DataTriggersまたは相対バインディングを使用したくない場合は、独自のコンテナーItemsControlとコンテナーを作成し(たとえばItemsControl、継承ListBoxして)、 ItemsControl.GetContainerForItemOverrideメソッドをオーバーライドして特定のプロパティでコンテナーをインスタンス化し、最後にカスタムコントロールプロパティをにバインドできます。コンテナで定義されたプロパティ。ListBoxItem

そうは言ってもDataTriggers、ViewModelでこれらのプロパティを使用および管理することに問題はありません。

于 2012-12-05T09:36:57.793 に答える