下面是我的代码在包含数据的页面中的样子:
private async Task GetLeaveBalance() {
try
{
Uri = "http://192.168.42.35/API/api/leave/getbalance/"+ empId + "/"+ companyId;
client = new HttpClient();
var authHeaderValue = basic;
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authHeaderValue);
HttpResponseMessage response = await client.GetAsync(Uri);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
if (response.IsSuccessStatusCode)
{
var emp = JsonConvert.DeserializeObject<List<Leave>>(responseBody);
dataGrid.ItemsSource = emp;
UserDialogs.Instance.HideLoading();
}
}
catch (HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ", e.Message);
UserDialogs.Instance.ShowError(e.Message);
}
}
private void Button_Clicked(object sender, EventArgs e)
{
Navigation.PushAsync(new Details());
}
我的第二个页面(Details Page)有一个选择器,它需要填充我从emp变量获得的数据,那么如何将数据从第一个页面传递到第二个页面(Details Page)?
发布于 2019-08-26 14:21:06
你也可以通过MessagingCenter,下面是一些步骤。
首先,在SecondPage中注册一个消息中心任务。
MessagingCenter.Subscribe<SecondPage(you can create a empty interface if you want to use as type),string>(this, "PopulateSecondPage", (sender,DataFromMainPage) =>
{
//your code to handle DataFromMainPage
});
然后使用以下命令传递数据:
var page = new SecondPage();
Navigation.PushAsync(page);
MessagingCenter.Send<MainPage>(page, "PopulateSecondPage","Data you want to pass");
发布于 2019-08-26 09:09:57
考虑到您的方法和代码,您可以直接将数据传递给第二个页面的构造函数
List<Leave> leaves = new List<Leave>();
private async Task GetLeaveBalance() {
...
leaves = JsonConvert.DeserializeObject<List<Leave>>(responseBody);
...
}
private void Button_Clicked(object sender, EventArgs e)
{
Navigation.PushAsync(new Details(leaves));
}
https://stackoverflow.com/questions/57653775
复制相似问题