2008-11-27 2 views
2

헤더 콘텐트 (HeaderDockPanel)와 다른 콘텐트 (RootDockPanel)를위한 두 개의 도킹 패널을 포함하는 사용자 정의 컨트롤 (vb.net 코드)을 만들었습니다. dockPanels는 사용자 정의 컨트롤의 depedency 속성입니다. 다음과 같이 WPF : UserControl 안에있는 DockPanel의 내용을 편집하려면 어떻게해야합니까?

이 종속성 속성

는 선언 : 나는 다음과 같이 이러한 도킹 패널의 내용을 변경하려고했습니다

Public Shared ReadOnly RootDockPanelProperty As DependencyProperty = DependencyProperty.Register(_ 
     "RootDockPanel", GetType(DockPanel), GetType(MyUserControl), New PropertyMetadata(_ 
     Nothing)) 

Public Shared ReadOnly HeaderDockPanelProperty As DependencyProperty = DependencyProperty.Register(_ 
      "HeaderDockPanel", GetType(DockPanel), GetType(MyUserControl), New PropertyMetadata(_ 
      Nothing)) 

하지만 난 더 성공 했어 :

<Wpf:EditBaseControl> 
    <Wpf:MyUserControl.HeaderDockPanel> 
     <DockPanel> 
      <Button Content="buttonContent" /> 
      <TextBlock Text="textBlock" /> 
     </DockPanel> 
    </Wpf:MyUserControl.HeaderDockPanel> 
</Wpf:EditBaseControl> 


을 UserControl 안에있는 DockPanel의 내용을 편집하려면 어떻게해야합니까?

답변

1

1 여기서는 디자인 접근법을 올바로 사용하지 않습니다. Dependancy 속성이 DockPanel로 필요한 이유는 무엇입니까? XAML에서 x : Name 속성을 설정하고 해당 이름에 액세스하면 _dockPanel이라고 말하면서 사용자 컨트롤 코드에서 DockPanel을 직접 참조 할 수 있습니다.

2 DP에 대한 또 다른 생각으로 Wpf : EditBaseControl에 DockPanel 인스턴스를 DependancyPropertyChanged 이벤트의 내용으로 추가해야 할 수 있습니다.

3 lookless 방법을 시도 할 경우 (즉, WPF Custom control), 나는 당신이 그 제어를 위해 DockPanel로 ItemsPanel을 설정이 목적을 위해 HeaderedItemsControl과를 작성하는 것이 좋습니다 것입니다.

관련 문제