Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WP8点击图像以获取longlistselector中的选定项_C#_Windows Phone 7_Windows Phone 8 - Fatal编程技术网

C# WP8点击图像以获取longlistselector中的选定项

C# WP8点击图像以获取longlistselector中的选定项,c#,windows-phone-7,windows-phone-8,C#,Windows Phone 7,Windows Phone 8,我用textblock和一个图像创建了一个LongListSelector,然后如何点击该图像以在列表中显示所选项目名称,以及如何点击项目名称以显示messagebox?下面是我绑定名称和图像的代码: <phone:PhoneApplicationPage.Resources> <DataTemplate x:Key="TileDataTemplate"> <Grid Background="{StaticResource T

我用textblock和一个图像创建了一个LongListSelector,然后如何点击该图像以在列表中显示所选项目名称,以及如何点击项目名称以显示messagebox?下面是我绑定名称和图像的代码:

<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>

当我点击textblock时,信息“Hi”显示成功。但如果我点击图像,我会得到空值。我如何解决它?谢谢

发送方
不是LongListSelector,而是用户点击的图像,因此出现空错误

基本上,您只想检索用户点击的项目?在这种情况下,使用点击控件的
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控件的基本类型。使用它,您不必担心它是否是图像、文本块等)

发送者
不是LongListSelector,而是用户点击的图像,因此出现空错误

基本上,您只想检索用户点击的项目?在这种情况下,使用点击控件的
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控件的基本类型。使用它,您不必担心它是否是图像、文本块等)

这就是工作!我成功显示所选项目名称,但即使我点击图像,也会显示消息“Hi”。如何仅显示所选项目而不显示消息“Hi”?Thanks@HowardHee只需删除
SelectionChanged
事件处理程序。你需要它吗?我明白你的意思,我需要删除SelectionChanged,然后我为SelectedItem创建相同的函数,点击文本块是吗?是的,它工作得很好。谢谢你的回答!我很感激it@HowardHee如果在点击文本框或图像时需要显示相同的消息,请改为在父网格上设置事件。这样,它将适用于网格中的每个控件,并且您只需在它工作时编写代码!我成功显示所选项目名称,但即使我点击图像,也会显示消息“Hi”。如何仅显示所选项目而不显示消息“Hi”?Thanks@HowardHee只需删除
SelectionChanged
事件处理程序。你需要它吗?我明白你的意思,我需要删除SelectionChanged,然后我为SelectedItem创建相同的函数,点击文本块是吗?是的,它工作得很好。谢谢你的回答!我很感激it@HowardHee如果在点击文本框或图像时需要显示相同的消息,请改为在父网格上设置事件。这样,它将适用于网格中的每个控件,并且只需编写一次代码