我们需要允许触摸MapPin的功能。并在触摸时,在当前位置和触摸笔之间绘制路线。触摸针来自xml文件并绑定到地图控件。
以下是我的代码。
我收到错误
Error: BindingExpression path error: 'Latitude' property not found on 'MapPin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. BindingExpression: Path='Latitude' DataItem='MapPin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'; target element is 'Windows.UI.Xaml.Controls.TextBlock' (Name='txtLatitude'); target property is 'Text' (type 'String')
XAML:
<map:MapControl x:Name="map1"
LandmarksVisible="True"
Loaded="map1_Loaded">
<map:MapItemsControl x:Name="MapItems" >
<map:MapItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel x:Name="stckPin" HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" Width="100" Tapped="stckPin_Tapped">
<Image x:Name="imgPin" Source="ms-appx:///Assets/icon.png"
map:MapControl.Location="{Binding Location}" Opacity="0.8"
map:MapControl.NormalizedAnchorPoint="{Binding NAP}"
Height="50" Width="50" />
<TextBlock x:Name="txtLatitude" TextWrapping="Wrap" Text="{Binding Latitude, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource DoubleConverter1}}" />
</StackPanel>
</DataTemplate>
</map:MapItemsControl.ItemTemplate>
</map:MapItemsControl>
</map:MapControl>
C#:
namespace MapLocatorNamespace
{
public sealed partial class MapLocator : Page
{
private void stckPin_Tapped(object sender, TappedRoutedEventArgs e)
{
StackPanel stkPin = (StackPanel)sender;
double loLatitude = Convert.ToDouble(((TextBlock)stkPin.Children[1]).Text);
}
}
public class DoubleConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var doubleNumber = (double)value;
return doubleNumber.ToString("0.00#################");
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
}
如何将Latitude绑定到textblock并在codebehind处获取?
答案 0 :(得分:0)
我自己解决了这个问题,
我所做的是, 我已将int column index添加到mapitem类中,并将其添加到image的'Tag'属性中。 在Tap事件上我得到这个标签,从这个索引我可以在我的列表中搜索并获得点击引脚。
现在我有Pin整个细节,从当前位置和这个引脚位置我可以绘制路线。
谢谢。