1

コマンド バインディングとコンテンツをプログラムで設定するユーザー コントロールがあります。

また、このコントロールを XAML にシリアル化します。これらを設定したので、コンテンツまたはバインディングをシリアル化したくありません。コンテンツはオーバーライドすることで処理されます:

public virtual bool ShouldSerializeContent()

そして、コマンドバインディングの同等物を見てうれしく思いました:

public bool ShouldSerializeCommandBindings()

ただし、この関数は仮想関数ではなく、実装で new を指定して非表示にしても何も起こらないように見えますか? これは、この MS ページによると、推奨される使用方法のようです: http://msdn.microsoft.com/en-us/library/53b8022e(v=vs.85).aspx

また、CommandBindings プロパティをシャドウして [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] を使用しようとしましたが、これではバインドが壊れてしまいます。

誰でも正しい方法を教えてもらえますか? これはバグですか?

4

1 に答える 1

1

ああ、私がそれを並べ替えたことを気にしないでください。秘訣は確かにプロパティをシャドウすることですが、私は実装を提供していませんでした。以下は、シリアライゼーションをオフにするために機能します。

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public CommandBindingCollection CommandBindings 
{
    get
    {
        return base.CommandBindings;
    }
}
于 2011-09-21T08:49:09.143 に答える