给出一个简单的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
答案 0 :(得分:1)
所以,经过多次挖掘,我发现了这个问题。为了能够支持自定义内容,必须在不同的程序集中声明基类。
谈论晦涩难懂。仍然,将SimpleBase的定义移动到新的程序集并更新xmlns:custom的定义以匹配和Bingo,只需使用直接字符串内容就不会出现更多错误。
感谢阅读。