WPF: как редактировать содержимое DockPanel, расположенного внутри UserControl?

Я создал пользовательский элемент управления (в коде vb.net), который содержит две док-панели: одну для содержимого заголовка (называемую HeaderDockPanel) и одну для другого содержимого (называемую RootDockPanel). DockPanels — это свойства зависимостей пользовательского элемента управления.

Эти свойства зависимости объявляются следующим образом:

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>


Как изменить содержимое DockPanel внутри UserControl?


person Robin    schedule 27.11.2008    source источник


Ответы (1)


1 Я неправильно понимаю ваш подход к дизайну. Зачем вам свойство Dependancy как DockPanel. Вы можете напрямую ссылаться на DockPanel в своем пользовательском коде управления, если вы установите свойство x: Name в XAML и получите доступ к этому имени, скажем, _dockPanel. Доступ к свойству _dockPanel.Children для управления его дочерними элементами,

2 Еще одна мысль о DP: вам может потребоваться добавить экземпляры DockPanel в Wpf: EditBaseControl как содержимое в событии DependancyPropertyChanged.

3 Если вы хотите попробовать незаметный способ (т. е. Пользовательский элемент управления WPF), то я предлагаю вам создать HeaderedItemsControl для этой цели и установите ItemsPanel как DockPanel для этого элемента управления .

person Jobi Joy    schedule 27.11.2008