グリッドを非同期データで読み込むのに苦労しています。GridViewのAPIからJSON非同期を取得する
私はこのクラッシュ/エラーを取得していますが、私はまだデータがないので、私は仮定していますか?
私はhttp://ramsey.api.com/hello
からJSONで引っ張ってるのと同じくらい簡単です::しかし、私は全くわからないんだけどすべてがうまくで引っ張っている
[{
"middleName": "Sarco",
"firstName": "Marco",
"city": "Neverland",
"lastName": "Ramsey"
}, {
"middleName": "Jarco",
"firstName": "Taco",
"city": "Niagra",
"lastName": "Ramsey"
}]
、と私はまた、マッピングよ
public class Ramsey
{
public string firstName { get; set; }
public string city { get; set; }
public string lastName { get; set; }
public string middleName { get; set; }
}
しかし、データをプルしてグリッドバインディングにマップしようとすると、エラーが発生します。ここで私が使用している方法は次のとおりです。
public static async Task<List<Ramsey>> GetListAsyncModelPeopleManager()
{
var ramsey = new List<Ramsey>();
var api = "http://ramsey.api.com/hello";
var client = new HttpClient();
var response = await client.GetAsync(api);
var result = await response.Content.ReadAsStringAsync();
IEnumerable<Ramsey> results = JsonConvert.DeserializeObject<IEnumerable<Ramsey>>(result);
foreach (Ramsey r in results)
{
var first = r.firstName;
var middle = r.middleName;
var last = r.lastName;
var city = r.city;
var item = new Ramsey();
item.firstName = first;
item.middleName = middle;
item.lastName = last;
item.city = city;
ramsey.Add(item);
}
return ramsey;
}
}
私はこれでハードコーディングされたデータを実行することができ、それは大丈夫ですので、私は私のバインディングはグリッドを見つけるされている知っている:
public static List<Ramsey> GetListSyncModelPeopleManager()
{
var ramsey = new List<Ramsey>();
ramsey.Add(new Ramsey { firstName = "Marco", city = "No City", lastName = "Ramsey" });
ramsey.Add(new Ramsey { firstName = "Karpo", city = "Niagra", lastName = "Cropo" });
ramsey.Add(new Ramsey { firstName = "Sarco", city = "Nacity", lastName = "Ramsey" });
return ramsey;
}
私はこれに新しいですよだから私はまだStephen Cleary'sとMSDN'sのようなドキュメントをチェックしていても、すべてを理解しようとしています。要求ごと
EDIT
ここで例外では:
System.ArgumentException occurred
HResult=0x80070057
Message=Value does not fall within the expected range.
Source=<Cannot evaluate the exception source>
StackTrace:
at Windows.UI.Xaml.Controls.ItemsControl.put_ItemsSource(Object value)
at qlckitWindows.MainPage.XamlBindingSetters.Set_Windows_UI_Xaml_Controls_ItemsControl_ItemsSource(ItemsControl obj, Object value, String targetNullValue) in \\Mac\code_repository\KIT\kitWindows\kitWindows\obj\x86\Debug\MainPage.g.cs:line 26
at qlckitWindows.MainPage.MainPage_obj1_Bindings.Update_list3(Task`1 obj, Int32 phase) in \\Mac\code_repository\QLC\qlckitWindows\qlckitWindows\obj\x86\Debug\MainPage.g.cs:line 248
at qlckitWindows.MainPage.MainPage_obj1_Bindings.Update_(MainPage obj, Int32 phase) in \\Mac\code_repository\QLC\qlckitWindows\qlckitWindows\obj\x86\Debug\MainPage.g.cs:line 240
at qlckitWindows.MainPage.MainPage_obj1_Bindings.Update() in \\Mac\code_repository\QLC\qlckitWindows\qlckitWindows\obj\x86\Debug\MainPage.g.cs:line 213
at qlckitWindows.MainPage.MainPage_obj1_Bindings.Initialize() in \\Mac\code_repository\QLC\qlckitWindows\qlckitWindows\obj\x86\Debug\MainPage.g.cs:line 207
at qlckitWindows.MainPage.MainPage_obj1_Bindings.Loading(FrameworkElement src, Object data) in \\Mac\code_repository\QLC\qlckitWindows\qlckitWindows\obj\x86\Debug\MainPage.g.cs:line 230
そして、ここでは、私は私のデータグリッドののItemsSourceをバインドする方法を示します。
実際<GridView x:Name="RamseyGridView" ItemsSource="{x:Bind list4}" IsItemClickEnabled="True" ItemClick="GridView_ItemClick">
<GridView.ItemTemplate>
<DataTemplate x:DataType="data:Ramsey">
<StackPanel x:Name="RamseyStackPan" Orientation="Horizontal" HorizontalAlignment="Center">
<StackPanel x:Name="RamseyStackPanel" Margin="20,20,0,0" Background="LightGray" >
<TextBlock x:Name="RamseyFirstName" FontSize="18" Text="{x:Bind firstName}" HorizontalAlignment="Center"></TextBlock>
<TextBlock x:Name="RamseyLastName" FontSize="10" Text="{x:Bind lastName}" HorizontalAlignment="Center"></TextBlock>
</StackPanel>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
エラーは何ですか? – NicoRiff
質問/回答ありがとう!私はクラッシュして、それは私が質問に入れたスクリーンショットにあるので、何が起こるかは、 "MainPage.g.cs"ファイルを開くクラッシュを得ることです。 "値が予想される範囲内に収まらないというエラーが表示されます"何か案は?あなたが他のQを持っているかどうか教えてください。ありがとう! – SRMR
デザインビューを開くとどうなりますか?例外が発生したときに持っているコールスタックを投稿することはできますか? – Chadley08