我有一个基本的UserControl
我写的通常有用,但现在我想改进它。原始设计只是Grid
,只有FrameworkElements
Rectangle
,TextBlock
和Width
。问题是,为了使其工作,我创建了大量的冗余依赖属性。例如,我不得不使用这些属性设置我的控件的Height
和MyControlWidth
,而是必须创建一个名为MyControlHeight
和Label
的新属性,这实际上是蹩脚的。< / p>
我已经开始使用Rectangles
重写控件了,我将TextBlock
和Label
放在ControlTemplate
的{{1}}内。现在我的问题是虽然Height
和Width
似乎工作正常,但我的其他一些依赖属性却没有。
例如,我希望我的控件具有用户指定的圆角,因此我创建了一个名为OutlineRadius
的依赖项属性,并使用它在{{RadiusX
和RadiusY
上设置Rectangle
和Style
1}}。好吧,现在当我运行我的应用程序时,我得到一个数据绑定错误,上面写着:
System.Windows.Data错误:40:BindingExpression路径错误:'object'''MyTestApplication'(Name ='')'上找不到'OutlineRadius'属性。 BindingExpression:路径= OutlineRadius; DataItem ='MyTestApplication'(Name =''); target元素是'Rectangle'(Name =''); target属性是'RadiusX'(类型'Double')
谁能告诉我哪里可能出错了?我还在考虑在我的应用程序中创建一个Label
并将其应用到OutlineRadius
,但我仍会遇到Style
的问题,因为我不知道是否可以使用{{1}}时,向现有控件添加属性。