我的UserControl遇到以下源代码时出现问题:
[ContentProperty("SetContent")]
public partial class HeaderContainer : UserControl
{
// Header region
public FrameworkElement SetContent
{
get { return (FrameworkElement)GetValue(SetContentProperty); }
set { SetValue(SetContentProperty, value); }
}
public static readonly DependencyProperty SetContentProperty =
DependencyProperty.Register("SetContent", typeof(FrameworkElement),
typeof(HeaderContainer), new PropertyMetadata(null));
public HeaderContainer()
{
InitializeComponent();
DataContext = this;
}
}
这是我的XAML
<StackPanel>
<Border>
<TextBlock Text="{Binding Header}" />
</Border>
<ContentPresenter Content="{Binding SetContent}"/>
</StackPanel>
这是我的问题:
<c:HeaderContainer Header="List">
<ItemsControl ItemsSource="{Binding ObjectList}" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding DisplayName}"/>
<TextBlock Text="{Binding SecondLine}" Foreground="Gray" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</c:HeaderContainer>
当我在XAML中添加内容时,Itemscontrol本身也在工作,也就是UserControl。问题是,当我在HeaderContainer中添加Items到ObjectList时 - 没有任何反应。我在哪里想错了?
答案 0 :(得分:0)
由于您的代码不完整,因此很难确定此处的确切问题。您有一个SetContent
依赖项属性,但是您的示例用法不会使用它。我认为您的方法应该是子类ContentControl
,将您的Header属性添加到此。
或者......只使用Silverlight Toolkit HeaderedContentControl,我认为这正是您要实现的目标!