2012-08-06 65 views
0

有沒有辦法告訴XamlWriter在寫出字符串時跳過模板屬性?我試圖通過視覺模擬一個類,但在輸出中保存另一個類。我將通過解析字符串來更改類名,但是我想跳過模仿外觀的樣式。XamlWriter跳過模板屬性

回答

1

ShouldSerialize[PropertyName]是自定義屬性是否被序列化的正確途徑。如果它們是空的,則用於跳過收藏。

不幸的是,XML寫類只看起來財產的所有人裏面的適當Should Serialize方法。

但是,如果你想跳過不屬於你的屬性,它是一個DependencyProperty,你很幸運。

您可以實現bool ShouldSerializeProperty(DependencyProperty)並擁有控制權的任何DependencyProperty的,是否屬於你的類或沒有。

爲了跳過模板屬性,繼承它作爲一個靜態成員,所以代碼如下所示:

protected override bool ShouldSerializeProperty(DependencyProperty dp) 
{ 
    if (dp == ContentControl.TemplateProperty) return false; 
    return base.ShouldSerializeProperty(dp); 
}