【问题标题】:ItemsControl inside my UserControl is not updating我的 UserControl 中的 ItemsControl 没有更新
【发布时间】:2012-01-15 04:29:19
【问题描述】:

我在使用以下源代码的 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 时 - 没有任何反应。我哪里想错了?

【问题讨论】:

    标签: c# silverlight dependency-properties itemscontrol


    【解决方案1】:

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

    或者......只需使用 Silverlight Toolkit HeaderedContentControl,我认为它完全符合您的目标!

    【讨论】:

    • 类 [ContentProperty("SetContent")] 上方的行将默认值更改为 SetContent。这部分工作完美。这只是更新。我想我会看看你的建议,也许改变这个比做一个新的更容易。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    • 2011-09-05
    相关资源
    最近更新 更多