停止在UserControl中序列化的CommandBindings

时间:2011-09-21 07:41:05

标签: wpf serialization commandbinding

我有一个用户控件,以编程方式设置其命令绑定和内容。

我还将此控件序列化为XAML。我不想将内容或绑定序列化,因为我设置了这些内容或绑定。内容由覆盖来处理:

public virtual bool ShouldSerializeContent()

我很高兴看到命令绑定的等价物:

public bool ShouldSerializeCommandBindings()

但是,这个功能不是虚拟的,通过在我的实现中指定new来隐藏它似乎什么都不做?这似乎是根据此MS页面使用它的推荐方法: http://msdn.microsoft.com/en-us/library/53b8022e(v=vs.85).aspx

我也尝试使用[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]遮蔽CommandBindings属性,但这只会破坏我的绑定。

有人能告诉我正确的方法吗?这是一个错误吗?

1 个答案:

答案 0 :(得分:1)

啊哈,没关系,我已经把它整理好了。诀窍确实是影响财产,但我没有提供任何实施。以下工作关闭序列化:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public CommandBindingCollection CommandBindings 
{
    get
    {
        return base.CommandBindings;
    }
}