2

在我的示例 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”?

4

1 回答 1

1

您可以使用内容模板:

<StackPanel Orientation="Vertical">
    <TextBox Text="{Binding CargoBoxNumber}" />
    <ContentControl Content="{Binding TypeOfFruit}"  ContentTemplate="{StaticResource fruitDetails}" />
</StackPanel>
于 2012-08-05T17:48:08.140 回答