Мое приложение выглядит следующим образом:
SectionHeader
SectionHeader
Содержание
SectionHeader
Содержание
SectionHeader
- это пользовательский элемент управления с двумя свойствами зависимостей = Title и Apps.
Заголовок не изменяется, но приложения должны быть привязаны к свойству приложения "Свойства окна главного окна". Свойство Apps требуется только для двух из трех заголовков разделов.
<c:SectionHeader DockPanel.Dock="Top" x:Name="SectionResources" Title="RESOURCES"
Apps="{Binding Path=Apps}" />
Так оно и есть на данный момент. Проблема в том, что приложения не отображаются.
В SectionHeader
DataContext устанавливается в себя следующим образом, что позволяет отображать Title.
DataContext="{Binding RelativeSource={RelativeSource Self}}"
Приложения - это ItemSource для ItemsControl
в UserControl:
<ItemsControl
ItemsSource="{Binding Apps}">
Итак, мои вопросы:
- Как привязать данные к UserControl DP?
- Это более простой способ сделать этот макет без UserControls?
EDIT:
Забыл упомянуть, что Apps - это ObservableCollection of AppsItems.
Вот как выглядит мой DP:
public static readonly DependencyProperty AppsProperty = DependencyProperty.Register("Apps",
typeof (ObservableCollection<AppsItem>), typeof (SectionHeader),
new PropertyMetadata(null, OnAppsPropertyChanged));
private static void OnAppsPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
Console.WriteLine("Hello!!!");
var sectionHeader = d as SectionHeader;
var value = e.NewValue as ObservableCollection<AppsItem>;
sectionHeader.Apps = value;
}