1

我正在开发一个 windows phone 8 应用程序,当我点击 longlistselector 中的一个项目时,我无法处理事件。

所以我有这个数据模板:

<DataTemplate x:Key="InfoDataTemplate">
    <Grid Margin="12,0,12,0" Width="auto">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Image x:Name="UserAvatar" Margin="0,12,0,0" Grid.Row="0" Grid.Column="0" Grid.RowSpan="3" Source="{Binding user.avatar_url}" VerticalAlignment="Top"/>
        <TextBlock x:Name="Username" Margin="12,0,0,0" Text="{Binding user.username}" Grid.Row="0" Grid.Column="1" FontSize="24" FontWeight="Bold"/>

我将此数据模板作为 app.xaml 的一部分,因为我在不同的页面中重用了它。

我在页面(page1.xaml)的longlistselector中使用这个数据模板:

<phone:LongListSelector x:Name="UserList" ItemTemplate="{StaticResource InfoDataTemplate}" SelectionChanged="List_SelectionChanged" ItemRealized="List_ItemRealized">                        

预期的行为是,当我点击模板中的图像时,我导航到页面 A,当我点击数据模板中的其他任何地方时,我导航到页面 B。这可能吗?如果是这样我应该如何实施它?谢谢

4

1 回答 1

1

可以实现此行为。您需要执行以下操作

  • 为 Image 添加一个点击事件,比如 ImageTapped
  • 为 LonglistSelector ListItemTapped 添加点击事件

现在,当您单击图像时,它将首先调用 ImageTapped 事件(您需要在此处设置一个标志),然后它调用 ListItemTapped 事件(您可以检查是否设置了标志),然后采取相应的行动。不要忘记在 ListItemTapped 事件中重置标志。

于 2013-09-13T12:40:43.510 回答