我的UserControl中的ItemsControl没有更新

时间:2012-01-15 04:29:19

标签: c# silverlight dependency-properties itemscontrol

我的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时 - 没有任何反应。我在哪里想错了?

1 个答案:

答案 0 :(得分:0)

由于您的代码不完整,因此很难确定此处的确切问题。您有一个SetContent依赖项属性,但是您的示例用法不会使用它。我认为您的方法应该是子类ContentControl,将您的Header属性添加到此。

或者......只使用Silverlight Toolkit HeaderedContentControl,我认为这正是您要实现的目标!