繁体   English   中英

WP8点击图像以在longlistselector中获得所选项目

[英]WP8 Tap the image to get the selected item in longlistselector

我创建了一个带有文本块和图像的LongListSelector,然后如何点击图像以显示列表中所选项目的名称,然后点击项目名称以显示消息框? 下面是绑定名称和图像的代码:

<phone:PhoneApplicationPage.Resources>
        <DataTemplate x:Key="TileDataTemplate">
            <Grid Background="{StaticResource TransparentBrush}"
                  Margin="0, 0, 0, 12" Height="60">
                <TextBlock Text="{Binding Name}" Margin="60, 10, 0, 0" FontSize="24" Height="60">
                </TextBlock>
                <Image x:Name="GetName" Tap="GetName_Tap" Grid.Column="0" Source="/Assets/AppBar/Delete.png" Height="40" Width="40"
                                Margin="0, 6, 0, 5" HorizontalAlignment="Right" VerticalAlignment="Top" />
            </Grid>
        </DataTemplate>
</phone:PhoneApplicationPage.Resources>

    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <phone:LongListSelector
                    SelectionChanged="MainLongListSelector_SelectionChanged"
                    Margin="10,6,0,0"
                    ItemsSource="{Binding Staff.Items}"
                    LayoutMode="Grid"
                    GridCellSize="400,80"
                    ItemTemplate="{StaticResource TileDataTemplate}"
                    />
    </Grid>

背后的代码:

private void MainLongListSelector_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
   MessageBox.Show("Hi");
}

private void GetName_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
   LongListSelector selector = sender as LongListSelector;
   StaffData data = selector.SelectedItem as StaffData;
   MessageBox.Show(data.Name);
}

当我点击文本块时,消息“ Hi”显示成功。 但是,如果我点击图像,则会得到空值。 我该如何解决? 谢谢

sender不是LongListSelector,而是用户点击的图片,因此为null。

基本上,您只想检索用户点击过的项目? 在这种情况下,请使用被点击控件的DataContext属性来检索它:

private void GetName_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
   var element = (FrameworkElement)sender;
   StaffData data = (StaffData)element.DataContext;
   MessageBox.Show(data.Name);
}

(FrameworkElement是每个UI控件的基本类型。使用它,您不必担心它是图像,文本块还是...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM