UserControl中的ItemsControl未更新
本文关键字:更新 ItemsControl 中的 UserControl | 更新日期: 2023-09-27 18:20:15
我的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也在工作。问题是,当我在ObjectList的HeaderContainer中添加Items时,什么都不会发生。我哪里想错了?
这里很难确定确切的问题,因为您的代码不完整。您有一个SetContent
依赖属性,但是您的示例用法没有使用它。我认为您的方法应该是子类ContentControl
,将Header属性添加到其中。
或者。。。只需使用Silverlight Toolkit HeaderedContentControl,我认为它正是您想要实现的!