2010-03-10 194 views
2

我有以下用戶控件嵌入在另一個用戶控件中。WPF UserControl綁定問題

<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顯示在屏幕上「(集合)」,但由於某些原因沒有顯示在標籤集合文本的每個項目。請幫忙。

回答

5

的問題是在這裏:

Content="{Binding Contexts}" 

您的意思是:

DataContext="{Binding Contexts}" 

你有原因 「(集合)」,而不是您爲ControlA定義的內容是您在ControlA的XAML中定義的內容已被您的集合取代。 UserControl的XAML文件的主體只需設置其Content屬性:在您設置它之後替換它。

2

當你聲明你的ContextContentsUserControl時,你正在設置它的Content屬性。您需要進行設置的DataContext來代替:

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