TypeCoverter和ContentProperty在同一个类中

时间:2015-02-19 14:55:01

标签: c# wpf xaml

我正在尝试实现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));
}

我希望MyTypeConverterMyType的实施在这里并不重要。

问题是,当我尝试编译代码时,我有一个错误:

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.

显然,我的项目不起作用。 有没有机会以这种方式实施?或者我可能需要改变方法? 提前感谢您的帮助!

0 个答案:

没有答案