0

文字列に書き出すときにテンプレート プロパティをスキップするように XamlWriter に指示する方法はありますか? クラスを視覚的に模倣しようとしていますが、出力に別のクラスを保存しています。文字列を解析してクラス名を変更しますが、外観を模倣するスタイルはスキップしたいと思います。

4

1 に答える 1

1

ShouldSerialize[PropertyName]プロパティをシリアル化するかどうかをカスタマイズする正しい方法です。コレクションが空の場合にコレクションをスキップするのに役立ちます。

Should Serialize残念ながら、Xml 書き込みクラスは、適切なメソッドのプロパティの所有者の中だけを調べます。

ただし、自分に属していないプロパティをスキップしようとしていて、それが 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 に答える