有没有办法告诉 XamlWriter 在写出字符串时跳过模板属性?我试图在视觉上模仿一个类,但在输出中保存另一个类。我将通过解析字符串来更改类名,但我想跳过模仿外观的样式。
问问题
242 次
1 回答
1
ShouldSerialize[PropertyName]
是自定义属性是否序列化的正确方法。如果集合为空,则可用于跳过集合。
不幸的是,Xml 编写类只在属性的所有者内部寻找适当的Should Serialize
方法。
但是,如果您尝试跳过不属于您的属性,并且它是 DependencyProperty,那么您很幸运。
您可以实现bool ShouldSerializeProperty(DependencyProperty)
并控制任何 DependencyProperty,无论它是否属于您的类。
为了跳过 Template 属性,您将其作为静态成员继承,因此代码如下所示:
protected override bool ShouldSerializeProperty(DependencyProperty dp)
{
if (dp == ContentControl.TemplateProperty) return false;
return base.ShouldSerializeProperty(dp);
}
于 2012-08-08T18:25:58.203 回答