如何将值列表从一个DataTemplate传递到另一个?

时间:2012-10-15 05:44:44

标签: c# xaml windows-8 microsoft-metro

我有一个字符串值(或标签)列表,我想在另一个DataTemplate中创建一个DataTemplate。例如,假设我有一个包含字符串,整数和字符串列表的对象。字符串列表是我感兴趣的标签集。对于每个标签,我都有一个我想要使用的特定DataTemplate:

<!-- This is the Tag Template-->
<DataTemplate x:Name="TagTemplate">
    <Border Background="LightGray">
        <TextBlock Text="{Binding TagValue}"/> <!-- This is where I'm not sure how to reference the individual tag-->
    </Border>
</DataTemplate>

另一个DataTemplate的主体将包含如下标签:

<!-- This is the main Data Template for the overall data-->
<DataTemplate>
     <Grid>
          <GridView ItemsSource="{Binding Tags}" ItemTemplate="{StaticResource TagTemplate }"/>
          <!-- Below is a commented static representation of the tags-->
          <!--<TextBlock Text="TAG, TAG, TAG, TAG, TAG" Margin="5, 5, 5, 5"/>-->
     </Grid>
<DataTemplate>

标签的DataBinding将是字符串List<String> Tags

的列表

我的问题是我不确定如何引用第二个绑定,或者甚至可以从一个DataTemplate传递任何内容的列表。这是可能的,如果是这样的话?

1 个答案:

答案 0 :(得分:2)

如果您的代码集合为List<String>,那么DateTemplate DataContext中的string将成为实际项:所以给定DataContext并且您可以绑定到当前<DataTemplate x:Name="TagTemplate"> <Border Background="LightGray"> <TextBlock Text="{Binding}"/> </Border> </DataTemplate> 1}}使用以下语法:

{{1}}