2011-09-21 5 views
1

프로그래밍 방식으로 해당 명령 바인딩 및 내용을 설정하는 사용자 정의 컨트롤이 있습니다.CommandBindings UserControl에서 serialize되는 중지하십시오

또한이 컨트롤을 XAML에 serialize합니다. 이걸 설정 한 이후에 내용이나 바인딩이 직렬화되는 것을 원하지 않습니다. 콘텐츠 오버라이드 (override)에 의해 처리된다

public virtual bool ShouldSerializeContent() 

를 그리고 명령 바인딩에 대한 동등한보고 기뻐했다 :

public bool ShouldSerializeCommandBindings() 

그러나,이 기능이 가상하지 않습니다, 그리고 새로운 지정하여 숨어있는 내 구현이 아무 것도하지 않는 것처럼 보입니까? http://msdn.microsoft.com/en-us/library/53b8022e(v=vs.85).aspx

내가 또한있는 CommandBindings 속성을 그림자와 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]를 사용하여 시도했다, 그러나 이것은 그냥 내 바인딩을 나누기 :이이 MS의 페이지에 따라 사용하기 위해 권장되는 방법을 것으로 보인다 않습니다.

누구나 올바른 방법을 보여줄 수 있습니까? 이거 버그 야?

답변

1

아하, 걱정 마라. 나는 그것을 분류했다. 그 트릭은 실제로 그 건물의 그림자를 드리 우기위한 것이지만 구현을 제공하지는 않았습니다. 다음은 직렬화를 해제하는 작업입니다.

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