ListBox.ItemTemplate与DataTemplate中的自定义控件模板

时间:2010-08-04 17:22:20

标签: c# silverlight silverlight-3.0 windows-phone-7

我正在开发一个Windows Phone应用程序。我已经定义了一个ListBox.ItemTemplate的DataTemplate,如下所示:

<ListBox Margin="10,10,8,8" x:Name="ChoicesList">
  <ListBox.ItemsPanel>
    <ItemsPanelTemplate>
      <StackPanel />
    </ItemsPanelTemplate>
  </ListBox.ItemsPanel>
  <ListBox.ItemTemplate>
    <DataTemplate>
      <Grid x:Name="ListBoxItemLayout" Background="Transparent" Margin="10">
        <Grid.ColumnDefinitions>
          <ColumnDefinition Width="0.281*"/>
          <ColumnDefinition Width="0.719*"/>
        </Grid.ColumnDefinitions>
        <Image Source="{Binding ImagePath}" Height="100"/>
        <StackPanel Margin="5,0,0,0" Grid.Column="1">
          <TextBlock x:Name="Name" TextWrapping="Wrap" Text="{Binding Name}" Style="{StaticResource PhoneTextTitle3Style}"/>
          <TextBlock x:Name="Description" Margin="0,5,0,0" TextWrapping="Wrap" Text="{Binding Description}" d:LayoutOverrides="Width" Style="{StaticResource PhoneTextSmallStyle}"/>
          <TextBlock x:Name="Rating" TextWrapping="Wrap" Text="{Binding Rating}" />
        </StackPanel>
      </Grid>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

我想将ListBoxItem中的所有内容转换为Control,因为我想向其添加Click事件。

我该怎么做?

谢谢。

1 个答案:

答案 0 :(得分:1)

在混合中,你可以使用“Make into Control”选项。

您还应该考虑在列表框中使用“SelectionChanged”事件,而不是在控件上单击(点击)。