如何让XAML编译器在自定义类上使用文本内容属性?

时间:2010-03-22 23:24:17

标签: c# xaml

给出一个简单的C#类定义,如:

    [System.Windows.Markup.ContentProperty("PropertyOne")]
    public class SimpleBase
    {
        public string PropertyOne { get; set; }
        public string PropertyTwo { get; set; }
    }

为什么不能在下面的xaml中省略单词Test周围的sys:string标签。

<custom:SimpleBase x:Class="TestType"
                   xmlns:custom="clr-namespace:ConsoleApplication1;assembly="
                   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                   xmlns:sys="clr-namespace:System;assembly=mscorlib">
  <sys:String>Test</sys:String>
</custom:SimpleBase>

不知何故,编译器正确地将文本转换为String类型的字符串,为什么它不能用于我的自定义类型?

上下文可以在我的博客上找到:http://www.deconflations.com/?tag=xaml

1 个答案:

答案 0 :(得分:1)

所以,经过多次挖掘,我发现了这个问题。为了能够支持自定义内容,必须在不同的程序集中声明基类。

谈论晦涩难懂。仍然,将SimpleBase的定义移动到新的程序集并更新xmlns:custom的定义以匹配和Bingo,只需使用直接字符串内容就不会出现更多错误。

感谢阅读。