Мое приложение выглядит так:
SectionHeader
SectionHeader
Содержимое
SectionHeader
Содержимое
SectionHeader
- это пользовательский элемент управления с двумя свойствами зависимостей = Название и Приложения.
Название не изменяетсяно Apps необходимо привязать к свойству Apps модели модели главного окна.Свойство Apps требуется только для двух из трех заголовков разделов.
<c:SectionHeader DockPanel.Dock="Top" x:Name="SectionResources" Title="RESOURCES"
Apps="{Binding Path=Apps}" />
Так оно и есть на данный момент.Проблема в том, что приложения не отображаются.
В SectionHeader
DataContext устанавливается на себя следующим образом, что позволяет отображать заголовок.
DataContext="{Binding RelativeSource={RelativeSource Self}}"
Приложения - этоItemsSource для ItemsControl
в UserControl:
<ItemsControl
ItemsSource="{Binding Apps}">
Итак, мои вопросы:
- Как я могу привязать данные к UserControl DP?
- Это более простой способ сделать этот макет без UserControls?
РЕДАКТИРОВАТЬ:
Забыл упомянуть, что 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;
}