ItemsControl внутри моего UserControl не обновляется - PullRequest
0 голосов
/ 15 января 2012

У меня проблемы с моим 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>

Работает сам Itemscontrol, а также UserControl, когда я добавляю контент в XAML. Проблема в том, что когда я добавляю Items в ObjectList, пока он находится в HeaderContainer, ничего не происходит. Где я не так думаю?

1 Ответ

0 голосов
/ 15 января 2012

Трудно определить точную проблему здесь, потому что ваш код неполон.У вас есть SetContent свойство зависимости, однако ваше примерное использование не использует его.Я думаю, что ваш подход должен заключаться в подклассе ContentControl, добавляя к нему свойство Header.

Или ... просто используйте Silverlight Toolkit HeaderedContentControl , который, я думаю, делает именно то, что выпытаемся достичь!

...