我正在C#/XAML中使用Newtonsoft.NET为我的WP8应用程序解析一些JSON数据,除了NavigationUri到HyperlinkButton的绑定之外,一切都很好。以下是我的数据库DataTemplate LongListSelector:
<DataTemplate>
<StackPanel Margin="10 10 10 20" Background="{StaticResource PhoneAccentBrush}">
<TextBlock Text="{Binding MovieTitle }" TextWrapping="Wrap" FontSize="18" />
<TextBlock Text="{Binding ImdbCode }" TextWrapping="Wrap" FontSize="18" />
<HyperlinkButton NavigateUri="{Binding ImdbLink}">View on IMDB</HyperlinkButton>
<Image Source="{Binding MovieCover}" Width="300" Height="300" HorizontalAlignment="Center"/>
<TextBlock Text="{Binding ImdbLink}" TextWrapping="Wrap" FontSize="18" />
</StackPanel>
</DataTemplate>这样就可以正确地加载所有内容,但是HyperLinkButton不会导航到Uri。
我该怎么做才能确保导航正常工作?如果不能使用HyperLinkButton,那么我可以添加一个常规按钮来传递url,以便OnClick事件可以导航到url。
发布于 2015-01-30 11:40:56
假设url是正确的,则可以像这样激活url浏览器:
XAML
<HyperlinkButton NavigateUri="{Binding ImdbLink}"
Click="NavigateButton_Click">View on IMDB</HyperlinkButton> C#
private void NavigateButton_Click(object sender, RoutedEventArgs e)
{
var hyperlinkButton = sender as HyperlinkButton;
if(hyperlinkButton == null)
{
return;
}
ShowInBrowser(hyperlinkButton.NavigateUri);
}
private void ShowInBrowser(Uri url)
{
Microsoft.Phone.Tasks.WebBrowserTask wbt =
new Microsoft.Phone.Tasks.WebBrowserTask();
wbt.Uri = url;
wbt.Show();
}发布于 2015-01-30 11:40:02
这是因为您没有RequestNavigate方法。尝试:
<HyperlinkButton NavigateUri="{Binding ImdbLink}" RequestNavigate="Hyperlink_RequestNavigate">View on IMDB</HyperlinkButton>并在您的代码后面为视图
private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
{
Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri));
e.Handled = true;
}或者您想要处理该单击事件(即打开一个新的new视图,并将其作为url)。
https://stackoverflow.com/questions/28234953
复制相似问题