私がUserControl
書いた基本的なものは一般的に機能しますが、今はそれを改善したいと思っています。元のデザインはGrid
、いくつかFrameworkElements
の 、 like Rectangle
、TextBlock
. 問題は、それを機能させるために、大量の冗長な依存関係プロパティを作成したことです。たとえば、これらのプロパティでコントロールのWidth
andを設定する代わりに、 andHeight
という名前の新しいものを作成する必要がありましたが、これは本当に不十分です。MyControlWidth
MyControlHeight
を使用してコントロールを書き直し始めました。とをの の中Label
に入れました。今私の問題は、正常に動作しているように見えますが、他の依存関係プロパティの一部が動作しないことです。Rectangles
TextBlock
Label
ControlTemplate
Height
Width
たとえば、コントロールにユーザー指定の丸い角を持たせたいので、という依存関係プロパティを作成し、OutlineRadius
それを使用して と を設定RadiusX
しRadiusY
ますRectangle
。さて、アプリケーションを実行すると、次のようなデータバインディング エラーが表示されます。
System.Windows.Data エラー: 40: BindingExpression パス エラー: 'OutlineRadius' プロパティが 'object' ''MyTestApplication' (Name='')' に見つかりません。BindingExpression:Path=OutlineRadius; DataItem='MyTestApplication' (Name=''); ターゲット要素は 'Rectangle' (Name='') です。ターゲット プロパティは 'RadiusX' (タイプ 'Double') です。
ここで、どこが間違っているのか誰か教えてもらえますか? Style
アプリケーションで を作成してに適用することも検討していましたが、 を使用するときに既存のコントロールにプロパティを追加できるかどうかわからないためLabel
、まだ問題が発生します。OutlineRadius
Style