2014-02-27 16 views
0

我構建這個代碼,以便在地圖上有多個引腳。嘗試使用onclick事件將頁面上的圖像固定到頁面上,並基於綁定。

<Grid x:Name="LayoutRoot" Background="Transparent"> 
    <maps:Map x:Name="myMap" Loaded="myMap_Loaded"> 
     <toolkit:MapExtensions.Children> 
      <toolkit:MapItemsControl Name="Items"> 
       <toolkit:MapItemsControl.ItemTemplate> 
        <DataTemplate> 
         <toolkit:Pushpin GeoCoordinate="{Binding Coordinate}" Tap="Pushpin_Tap_1" > 
          <toolkit:Pushpin.Template > 
           <ControlTemplate > 
            <Canvas> 
             <Image Source="/App;component/Assets/pin.png" 
                Width="48" Height="102" 
                Canvas.Left="-20" Canvas.Top="-102" /> 
              <Border Background="Black" Width="200" Visibility="Visible" x:Name="border1" HorizontalAlignment="Center" > 
              <StackPanel x:Name="_Stack1" > 
               <TextBlock x:Name="TextBlock1" 
                  Text="{Binding ID}" 
                  Canvas.Top="-45" 
                  Canvas.Left="5" 
                  Style="{StaticResource PhoneTextNormalStyle }" 
                  Foreground="#FF51FF00" /> 

               <TextBlock 
                  Text="{Binding Name}" 
                  Canvas.Top="-25" 
                  Canvas.Left="5" 
                  Style="{StaticResource PhoneTextContrastStyle }" 
                  Foreground="Red" /> 
              </StackPanel> 
             </Border> 
            </Canvas> 
           </ControlTemplate> 
          </toolkit:Pushpin.Template> 
         </toolkit:Pushpin> 
        </DataTemplate> 
       </toolkit:MapItemsControl.ItemTemplate> 
      </toolkit:MapItemsControl> 
     </toolkit:MapExtensions.Children> 
    </maps:Map> 
</Grid> 

現在的問題是我怎麼可以基於該TextBlock1.Text(圖釘一個標籤事件中,我不能老是「達」在的.cs的textblock1.text:基於位置的結合和文本部分)

private void Pushpin_Tap_1(object sender, System.Windows.Input.GestureEventArgs e) 
    { 
     NavigationService.Navigate(new Uri("/ExtraPage/Info.xaml?selectedItem=" + TextBlock1.Text(THIS WONT WORK) , UriKind.Relative)); 
    } 

這樣做的最佳方法是什麼?或者我做錯了什麼? 在此先感謝

回答

1

您無法訪問它,因爲它在模板中。

如果你想在TextBlock上點擊事件,只需將它添加到那裏,而不是將它添加到圖釘。但我認爲這不是你的需要。

如果您想要TextBlock1中的Text值,您真正需要的是綁定到該TextBlock的ID。您擁有的事件處理程序的發件人(可能)是圖釘。所以,你真正想要的是該圖釘的DataContext和該DataContext的ID屬性,並且從我所知道的來說,DataContext是某種位置對象,所以我將它稱爲Location。

var id = ((sender as Pushpin).DataContext as Location).ID; 

這就是你的TextBlock - 你可以輕鬆使用的ID。

更改'地點',無論你的班級是什麼。

+0

非常感謝,正是我在找的東西。 – user3147928

相關問題