首页 > 解决方案 > 使用 xamarin 表单在列表视图中填充空值

问题描述

目前我正在添加用户药物,用户可以在选择或不选择诊断的情况下添加药物,使用基于用户当前添加的“诊断”的下拉列表收集诊断。

在此处输入图像描述

当我填写表格并选择诊断时,数据已成功添加到 azure 中,并且在我的下一页显示已添加药物的列表视图中,它成功显示了与诊断一起添加的药物。

如果我填写表格并将诊断留空,则数据将成功发布到 azure,并且诊断 ID 显示为空白,但在我的下一页显示添加药物的列表视图时,它没有显示。

如果诊断留空,数据将不会出现在列表视图中。

/// <summary>
    /// Gets User Medication list
    /// </summary>
    /// <returns>The user meds.</returns>
    async public Task GetUserMedsMain()
    {


        MedicationList.ItemsSource = null;
        UserMedTimes.Clear(); //Clears the list before calling API (prevents duplication)

        main.Children.Add(MedicationList);
        main.Children.Remove(NoMeds);

        if (!CrossConnectivity.Current.IsConnected)
        {

            main.Children.Remove(MedicationList);
            main.Children.Add(NoMeds);
            NoMeds.Text = "No Internet Connection - Please check your connection";
            NoMeds.Margin = new Thickness(35, 35, 20, 20);

            BusyIndicator.IsRunning = false;
        }

        else

        {
            BusyIndicator.IsRunning = true;

            //var usermed = await medicinemanager.CurrentClient.InvokeApiAsync<IEnumerable<usermedication>>("getusermednamejoin?userid=" + Helpers.Settings.UserKey + "", System.Net.Http.HttpMethod.Get, null);

            try
            {


                var usermeddosagetime = await medicinemanager.CurrentClient.InvokeApiAsync("getusermednamejoin?userid=" + Helpers.Settings.UserKey, null, HttpMethod.Get, await App.LoadAPIKeyAsync(), null);



                var responseContent = await usermeddosagetime.Content.ReadAsStringAsync();
                var user = JsonConvert.DeserializeObject<ObservableCollection<UserMedDosagePayLoad>>(responseContent);

                //var usermeddosagetime = await medicinemanager.CurrentClient.InvokeApiAsync<IEnumerable<UserMedDosagePayLoad>>("getusermeddosagetime?userid=" + Helpers.Settings.UserKey + "", HttpMethod.Get, API, System.Threading.CancellationToken.None);
                //null, System.Net.Http.HttpMethod.Get, API, System.Threading.CancellationToken.None);

                Debug.WriteLine("UserMedDosageTime" + usermeddosagetime);

                foreach (UserMedDosagePayLoad item in user)
                {

                    UserMedTimes.Add(item);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.ToString());
            }

目前我正在使用 Azure 中的 API 调用填充列表视图。

标签: xamarinxamarin.forms

解决方案


推荐阅读