代码之家  ›  专栏  ›  技术社区  ›  Burt

wpf用户控件绑定问题

  •  2
  • Burt  · 技术社区  · 14 年前

    我有以下嵌入到另一个用户控件中的用户控件。

    <UserControl.Resources>
    
        <DataTemplate x:Key="ContextsTemplate">
            <Label  Margin="10,0,20,0" Content="{Binding Name}"/>
        </DataTemplate>
    
    </UserControl.Resources>
    
    <ItemsControl Name="Contexts" 
                      Background="Transparent" 
                      ItemsSource="{Binding}" 
                      Margin="0,0,0,0"
                      VerticalAlignment="Center"
                      AlternationCount="2" 
                      ItemTemplate="{StaticResource ContextsTemplate}">
    </ItemsControl>
    

    下面是上面嵌入到另一个用户控件(controla)中的用户控件(controlb)的xaml代码。

    <local:ContextContentsUserControl Height="30" Content="{Binding Contexts}"/>
    

    controla在屏幕上显示为“(collection)”,但由于某些原因,它不会在标签的collections文本中显示每个项。请帮忙。

    2 回复  |  直到 14 年前
        1
  •  5
  •   Ray Burns    14 年前

    问题在于:

    Content="{Binding Contexts}"
    

    你的意思是:

    DataContext="{Binding Contexts}"
    

    您获得“(collection)”而不是为controla定义的内容的原因是您在xaml中为controla定义的内容已替换为您的集合。用户控件的xaml文件的主体只需设置 Content 属性:您在设置后替换了它。

        2
  •  2
  •   itowlson    14 年前

    当您声明ContextContentSuserControl时,您正在设置其内容属性。您需要改为设置datacontext:

    <local:ContextContentsUserControl Height="30" DataContext="{Binding Contexts}" />