指定要在ItemsControl绑定中使用的对象的属性

时间:2012-08-05 17:24:17

标签: silverlight xaml binding

在我的示例WP7应用程序中,我想使用相同的数据模板在所有ItemsControl控件中显示水果。

<DataTemplate x:Key="fruitDetails" >
    <StackPanel Orientation="Horizontal">
        <TextBlock Text="{Binding Name}" />
        <TextBlock Text="{Binding Color}" />
    </StackPanel >
</DataTemplate>

对于我可以这样绑定的水果列表:

XAML: 
<ItemsControl Name="itemControls1" ItemTemplate="{StaticResource fruitDetails }" >

C#
ObservableCollection<Fruit> fruits = new ObservableCollection <Fruit>();
itemControls1.ItemSource = fruits;

但我的一些名单中有水果作为财产:

class CargoBox
{
    public int CargoBoxNumber { get; set; }
    public Fruit TypeOfFruit { get; set; }
}

ObservableCollection <CargoBox> boxes = new ObservableCollection <CargoBox>();

如果我想使用相同的DataTemplate显示水果,我该如何绑定此列表并指定属性“TypeOfFruit”?

1 个答案:

答案 0 :(得分:1)

您可以使用内容模板:

<StackPanel Orientation="Vertical">
    <TextBox Text="{Binding CargoBoxNumber}" />
    <ContentControl Content="{Binding TypeOfFruit}"  ContentTemplate="{StaticResource fruitDetails}" />
</StackPanel>