【发布时间】:2011-07-22 08:08:31
【问题描述】:
我的应用如下所示:
SectionHeader
SectionHeader
内容
SectionHeader
内容
SectionHeader 是一个用户控件,具有两个依赖属性 = Title 和 Apps。
标题不变,但应用程序需要绑定到主窗口视图模型的应用程序属性。只有三个部分标题中的两个需要 Apps 属性。
<c:SectionHeader DockPanel.Dock="Top" x:Name="SectionResources" Title="RESOURCES"
Apps="{Binding Path=Apps}" />
目前就是这样。问题是应用程序不显示。
在SectionHeader 中,DataContext 设置为自身,如下所示,允许显示标题。
DataContext="{Binding RelativeSource={RelativeSource Self}}"
Apps 是 UserControl 中 ItemsControl 的 ItemsSource:
<ItemsControl
ItemsSource="{Binding Apps}">
所以我的问题是:
- 如何将数据绑定到 UserControl DP?
- 在没有 UserControls 的情况下,他们是否可以更轻松地进行此布局?
编辑:
忘了说 Apps 是 AppsItems 的 ObservableCollection。
这就是我的 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;
}
【问题讨论】: