Silverlight使用HyperlinkBut​​ton在页面之间传递参数

Ron*_*nny 8 parameters silverlight hyperlink

我有一个显示用户列表的页面.每个用户都有一个ID和一个HyperlinkBut​​ton来观看有关用户的更多详细信息.

当按下HyperlinkBut​​ton时,我想导航到另一个页面(称为UserDetails)并以某种方式读取被按下的用户的ID.

我怎样才能做到这一点?

谢谢,罗尼

Ron*_*nny 7

我找到了一个很好的解决方案,但我希望听到一些更优雅的东西.

在UriMapper部分中,我添加了另一个UriMapping:

<uriMapper:UriMapping Uri="/UserDetails/{UserId}" MappedUri=/Views/UserDetails.xaml"/>
Run Code Online (Sandbox Code Playgroud)

通过这样做,"/ UserDetails/XXX"格式的所有导航将导航到同一页面,UserDetails.xaml.

所以现在我的HyperlinkBut​​ton是使用具有所需格式的NavigateUri生成的:

NavigateUri = "/的UserDetails/1234"

现在,在UserDetails.xaml页面上,在OnNavigatedTo方法中,我可以解析Uri参数(e.Uri)并相应地加载用户详细信息.

  • 无需解析Uri.将MappedUri更改为"/Views/UserDetails.aspx?id={UserId}"接下来您将能够使用NavigationContext.QueryString ["id"]来获取值 (5认同)

小智 6

您可以使用NavigationContext从查询字符串中获取数据..试试这个:

<HyperlinkButton NavigateUri="/UserDetails?userId=123" />    
Run Code Online (Sandbox Code Playgroud)

而且在导航的页面中是这样的

string customerId = this.NavigationContext.QueryString["customerid"];
Run Code Online (Sandbox Code Playgroud)