Skip to main content
 首页 » 编程设计

c#之将数据从主页上的 web api 传递到 xamarin 表单中的详细信息页面

2024年02月25日31Terrylee

对于包含数据的页面,我的代码如下所示:

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)); 
}