Прекратить сериализацию CommandBindings в UserControl - PullRequest
1 голос
/ 21 сентября 2011

У меня есть пользовательский элемент управления, который программно устанавливает привязки команд и их содержимое.

Я также сериализовал этот элемент управления в XAML. Я не хочу, чтобы содержимое или привязки были сериализованы, так как я их настроил. Содержание заботится о переопределении:

public virtual bool ShouldSerializeContent()

И мне было приятно видеть эквивалент для командных привязок:

public bool ShouldSerializeCommandBindings()

Однако эта функция не является виртуальной, и ее скрытие путем указания нового в моей реализации, похоже, ничего не дает? По-видимому, это рекомендуемый способ использовать его в соответствии с этой страницей MS: http://msdn.microsoft.com/en-us/library/53b8022e(v=vs.85).aspx

Я также пытался скрыть свойство CommandBindings и использовать [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)], но это просто нарушает мои привязки.

Может кто-нибудь показать мне правильный путь? Это ошибка?

1 Ответ

1 голос
/ 21 сентября 2011

Ага, не бери в голову, я это разобрал. Хитрость заключается в том, чтобы скрыть свойство, но я не предоставлял никакой реализации. Следующие работы отключают сериализацию:

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