我正在尝试实现UIElement
类型的自定义控件。
我想实现一个控件属性的类型转换器,它是控件的直接内容(如ContentControl
)。
我知道,为了支持我必须使用ContentPropertyAttribute
的直接内容,我还有一个TypeConverter
和我自己的直接内容属性类型。
所以 - 它看起来像这样:
XAML:
<controls:MyControl>
<![CDATA[
Typical string to convert.
]]>
<controls:MyControl>
MyControl:
[ContentProperty("MyProperty")]
[TypeConverter(typeof(MyTypeConverter))]
public class MyControl : UIElement
{
public MyType MyProperty
{
get { return (MyType)GetValue(MyPropertyProperty); }
set { SetValue(MyPropertyProperty, value); }
}
public static readonly DependencyProperty MyPropertyProperty =
DependencyProperty.Register("MyProperty", typeof(MyType), typeof(MyControl), new PropertyMetadata(null));
}
我希望MyTypeConverter
和MyType
的实施在这里并不重要。
问题是,当我尝试编译代码时,我有一个错误:
error MC3090: TypeConverter syntax error encountered while processing initialization string '
error MC3090: Typical string to convert.
error MC3090: '. Element attributes are not allowed on objects created via TypeConverter. Line 52 Position 8.
显然,我的项目不起作用。 有没有机会以这种方式实施?或者我可能需要改变方法? 提前感谢您的帮助!