在我的 UWP 应用程序中,我正在解析来自 Json 文件的文本图像和 URI,但是当我解析 URI 并在我的 xaml 页面中的超链接按钮中调用它时,什么也没有发生。请是否有人可以与我核对这段代码并告诉我是否应该将字符串转换为 uri (Common_sense_media,metacritic) 或反之,或者告诉我该怎么做才能使其工作
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
jsonCall();
}
public static BitmapImage ImageFromRelativePath(FrameworkElement parent, string path)
{
var uri = new Uri(parent.BaseUri, path);
BitmapImage result = new BitmapImage();
result.UriSource = uri;
return result;
}
public async void jsonCall()
{
List<Result> listResult = new List<Result>();
var client = new HttpClient();
String jsonString = await client.GetStringAsync(new Uri("http://api-public.guidebox.com/v1.43/Tunisia/rKgEWJbFg0kgEHrcGXPKhPDo0XtTafyC/movies/all/250/250"));
System.Diagnostics.Debug.WriteLine(JsonValue.Parse(jsonString).ValueType);
JsonObject root = JsonValue.Parse(jsonString).GetObject();
JsonArray res = root.GetNamedArray("results");
for (uint i = 0; i < res.Count; i++)
{
JsonObject con = res.GetObjectAt(i);
String id = con.GetNamedNumber("id").ToString();
String title = con.GetNamedString("title");
string release_year = con.GetNamedNumber("release_year").ToString();
string themoviedb = con.GetNamedNumber("themoviedb").ToString();
string original_title = con.GetNamedString("original_title");
JsonArray alt = con.GetNamedArray("alternate_titles");
String name = "-";
if (alt.Count != 0) {
name = alt.GetStringAt(0);
for (uint j = 1; j < alt.Count; j++)
{
name = name + ", " + alt.GetStringAt(j);
}
}
string imdb = con.GetNamedString("imdb");
string pre_order = con.GetNamedBoolean("pre_order").ToString();
string in_theaters = con.GetNamedBoolean("in_theaters").ToString();
string release_date = con.GetNamedString("release_date");
string rating = con.GetNamedString("rating");
string rottentomatoes = con.GetNamedNumber("rottentomatoes").ToString();
string freebase = con.GetNamedString("freebase");
string wikipedia_id = con.GetNamedNumber("wikipedia_id").ToString();
//System.Diagnostics.Debug.WriteLine("------------------------------"+con.GetNamedValue("metacritic").ValueType);
// string metacritic = con.GetNamedString("metacritic");
// MediaElement metacritic= VideoFromRelativePath(this, con.GetNamedValue("metacritic").ValueType.ToString());
string common_sense_media = con.GetNamedValue("common_sense_media").ToString();
string metacritic = con.GetNamedValue("metacritic").ToString();
// Uri Common_sense_media = con.GetNamedValue("Common_sense_media").ToString();
// string Common_sense_media = con.GetNamedValue("Common_sense_media").ToString();
//string Common_sense_media = con.GetNamedString("metacritic");
//System.Diagnostics.Debug.WriteLine("-------------"+Common_sense_media);
BitmapImage Poster_120x171 = ImageFromRelativePath(this, con.GetNamedString("poster_120x171"));
BitmapImage poster_240x342 = ImageFromRelativePath(this, con.GetNamedString("poster_240x342"));
BitmapImage poster_400x570 = ImageFromRelativePath(this, con.GetNamedString("poster_400x570"));
list.Items.Add(new Result {Id=id,Title=title,Themoviedb=themoviedb,Original_title=original_title,Alternate_titles=name,
Imdb=imdb,Pre_order=pre_order,In_theaters=in_theaters,Release_date=release_date,
Rating=rating, Rottentomatoes=rottentomatoes,Freebase=freebase,Wikipedia_id=wikipedia_id,
Common_sense_media = common_sense_media,
Metacritic= metacritic,
Poster = Poster_120x171, Poster_240x342=poster_240x342,Poster_400x570=poster_400x570});
}
}
}
}
我的xml代码:
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<ListView
Name="list"
DataContext="{Binding}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Orientation="Vertical">
<Image Source="{Binding Poster}" Width="100" Height="100"/>
<TextBlock
Name="id"
Text="{Binding Id}" />
<TextBlock
Name="title"
Text="{Binding Title}" />
<TextBlock
Name="release_year"
Text="{Binding Release_year}" />
<TextBlock
Name="themoviedb"
Text="{Binding Themoviedb}" />
<TextBlock
Name="original_title"
Text="{Binding Original_title}" />
<TextBlock
Name="alternate_titles"
Text="{Binding Alternate_titles}" />
<TextBlock
Name="imdb"
Text="{Binding Imdb}" />
<TextBlock
Name="pre_order"
Text="{Binding Pre_order}" />
<TextBlock
Name="in_theaters"
Text="{Binding In_theaters}" />
<TextBlock
Name="release_date"
Text="{Binding Release_date}" />
<HyperlinkButton Content="Common_sense_media" NavigateUri= "{Binding Common_sense_media}"/>
<HyperlinkButton Content="metacritic" NavigateUri= "{Binding metacritic}"/>
<TextBlock
Name="rating"
Text="{Binding Rating}" />
<TextBlock
Name="rottentomatoes"
Text="{Binding Rottentomatoes}" />
<TextBlock
Name="freebase"
Text="{Binding Freebase}" />
<TextBlock
Name="wikipedia_id"
Text="{Binding Wikipedia_id}" />
<TextBlock
Name="common_sense_media"
Text="{Binding Common_sense_media}" />
<TextBlock
Name="poster_120x171"
Text="{Binding Poster_120x171}" />
<Image Source="{Binding Poster_240x342}" Width="100" Height="100"/>
<Image Source="{Binding Poster_400x570}" Width="100" Height="100"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>