好的我需要将此代码中的标记传递到下一页但我不知道如何访问它。有人可以帮忙吗。
代码:
<ListBox x:Name="AgendaList" Width="450" Height="520" Margin="10" SelectionChanged="event_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Width="100" Stretch="Uniform" HorizontalAlignment="Center" Source="/SuperAgenda;component/Images/calendar.jpg" />
<TextBlock Text="{Binding Title_}" Tag="{Binding EventId_}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我正在使用按钮发送它,所以我需要知道如何获取标签数据并让按钮将其发送到下一页。 我的按钮看起来像这样,但它不发送任何数据:
private void viewEvent_Click(object sender, RoutedEventArgs e)
{
string uri = String.Format("/Views/Event_View/Event_View.xaml?id={0}", clickedLink.Tag);
NavigationService.Navigate(new Uri(uri, UriKind.Relative));
}
任何帮助都会非常感谢。
答案 0 :(得分:0)
实际上,要在页面之间传输数据,您应该使用PhoneApplicationService类。
PhoneApplicationService.Current.State["field"] = someField;
点击你的按钮点击事件。
然后,在您的下一页上使用强制转换
获取该值someField = (fieldType)PhoneApplicationService.Current.State["field"];
这就是你想要的吗?
答案 1 :(得分:0)
只需使用您导航到的页面的Navigation Context属性即可。
if (this.NavigationContext.QueryString.ContainsKey("ProductId"))
{
productID = this.NavigationContext.QueryString["ProductId"];
}
else
{
productID = App.Current.Resources["FeaturedProductID"].ToString();
}
答案 2 :(得分:0)
在这里使用Tag
属性是多余的,因为绑定控件中的DataTemplate
包含对象的所有属性。使用DataContext
检索对象。将Tap
个活动添加到StackPanel
中的DataTemplate
(以便用户可以点按图片或文字):
private void StackPanel_Tap( object sender, GestureEventArgs e ) {
int eventid = (( sender as StackPanel ).DataContext as MyObject).EventId_;
string uri = String.Format("/Views/Event_View/Event_View.xaml?id={0}", eventid);
NavigationService.Navigate(new Uri(uri, UriKind.Relative));
}
然后使用paiden的答案中的NavigationContext
来检索收据页面上的值。