c# - 将数据从主页上的 web api 传递到 xamarin 表单中的详细信息页面
问题描述
以下是我的代码在包含数据的页面上的样子:
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());
}
我的第二页(详细信息页面)有一个选择器,需要用我从 emp 变量中获取的数据填充该选择器,那么如何将数据从第一页传递到第二页(详细信息页面)?
解决方案
考虑到您的方法和代码,您可以直接将数据传递给第二页的构造函数
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));
}
推荐阅读
- model-view-controller - 无法将类型“System.Nullable”转换为类型“System.Object”。LINQ to Entities 仅支持转换 EDM 基元或枚举类型
- jquery - 如何通过单击关闭按钮停止/暂停视频
- python - 使用 pandas DataFrame 初始化一个类并填充它
- javascript - 使用isSame函数从momnet js中的另一个数组元素中删除一个数组元素
- python - python中的环境变量
- java - 如何将有效负载发送到硒中的文本区域
- jquery - yajra 数据表 - laravel 5.7 我的数据表不工作
- python - 如何将列表中的值与特定整数值进行比较?
- php - 提交后没有任何反应
- android - 如何用 Flutter 应用替换现有的原生 Android/iOS 应用?