【问题标题】:MapItemsControl Tapped Event on WP 8.1 RTWP 8.1 RT 上的 MapItemsControl 点击事件
【发布时间】:2015-12-16 09:21:38
【问题描述】:

我正在开发 Windows Phone 8.1 RT 项目,我想在点击 mapcontrolSP 时获取我的绑定项。

    <Maps:MapControl x:Name="Map" MapServiceToken="abcdef-abcdefghijklmno">
        <Maps:MapItemsControl x:Name="mapitem" ItemsSource="{Binding}">
            <Maps:MapItemsControl.ItemTemplate>
                <DataTemplate>
                    <StackPanel x:Name="mapcontrolSP" Orientation="Horizontal" Background="Red" Tapped="ItemStckPanel">
                        <Image Source="Assets/ico-venue.png" Height="45" Width="45"
                           Maps:MapControl.Location="{Binding Geopoint}"
                           Maps:MapControl.NormalizedAnchorPoint="{Binding Anchor}"/>
                        <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center" Margin="5">
                            <TextBlock FontSize="15" Foreground="White" Text="{Binding name}"/>
                            <TextBlock FontSize="15" Foreground="White" Text="{Binding address}"/>
                            <TextBlock FontSize="15" Foreground="White" Text="{Binding distance}"/>
                        </StackPanel>
                    </StackPanel>
                </DataTemplate>
            </Maps:MapItemsControl.ItemTemplate>
        </Maps:MapItemsControl>
    </Maps:MapControl>

我在 StackPanel 元素上创建了一个点击事件,但项目为空:

    private void ItemStckPanel(object sender, TappedRoutedEventArgs e)
    {
            var item = sender as FsqBasicItem;
            MessageDialog dialog = new MessageDialog(item.name);
            dialog.ShowAsync();
    }

我如何获得物品?

【问题讨论】:

    标签: c# windows windows-runtime windows-phone-8.1 bing-maps


    【解决方案1】:

    快速解决方案:

    private void ItemStckPanel(object sender, TappedRoutedEventArgs e)
    {
            var stackPanel = sender as StackPanel;
            var item = stackPanel.DataContext as FsqBasicItem;
            if(item != null)
            {
                MessageDialog dialog = new MessageDialog(item.name);
                dialog.ShowAsync();
            }
    }
    

    【讨论】:

    • 再次出现异常。现在堆栈面板为空。我使用这一行来绑定 mapitem.ItemsSource = basicItemsList;
    • 嗯。你能告诉我它在代码中的样子吗?因为在我的测试解决方案中,这段代码:pastebin.com/cYMVivQc 运行良好。
    • 嗯,我在模拟器上检查了这个(不幸的是目前没有设备),它对我有用。这是我的解决方案:1drv.ms/1Kowjxf也许你找到了一些东西:)
    • 您的解决方案非常完美。我的 FsqbasicClass 不能正常工作。你的课对我很好。谢谢:)
    • 请随时查看。我还没有找到解决方案stackoverflow.com/questions/32652666/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多