新的Xamarin.Forms飞出菜单出现问题

时间:2019-05-25 20:45:28

标签: c# xamarin.forms

我正在创建Xamarin表单应用程序,并且正在使用Xamarin表单新的Shell模板。我创建了一个弹出菜单,并且在菜单中有一个主页(具有列表视图)和辅助页面。

将新项目添加到主页时,似乎覆盖的Onappearing()方法不起作用。除非您打开弹出菜单并打开另一个页面,否则请返回主页。然后,您将在列表视图中看到更新的列表项。

在没有弹出菜单的情况下,列表页运行良好。

我尝试了Shell.Current.Navigation.PopModalAsync();

//这是主页

    protected override async void OnAppearing()
    {
        await _connection.CreateTableAsync<WorkOutModel>();
        var workOutsList = await _connection.Table<WorkOutModel>().ToListAsync();
        _workOuts = new ObservableCollection<WorkOutModel>(workOutsList.OrderBy(x => x.Date).ToList());
        MyWorkOutList.ItemsSource = _workOuts;

        base.OnAppearing();
    }
    async void Create_WorkOut_Clicked(object sender, EventArgs e)
    {
        if (await DisplayAlert("Warning!!", "Are you sure you want to create a new workout calendar? Current calendar will be deleted.", "Yes", "No"))
        {
            await _connection.DropTableAsync<WorkOutModel>();
            await Shell.Current.Navigation.PushModalAsync(new CreateWorkOutCalendar());

        }
    }

//您发送到的页面,用于将项目添加到列表中

异步void Save_Clicked(对象发送者,EventArgs e)         {

var datePicked = startDate.Date;

        try
        {

            for (int i = 0; i < workOutList.Count; i++)
            {
                WorkOutModel itemsList = new WorkOutModel()
                {
                    Title = selectedProgram,
                    WorkOutTitle = workOutList[i],
                    Date = datePicked.AddDays(i),
                    Notes = "",
                    Done = false

                };
                await _connection.InsertAsync(itemsList);
                _workOuts.Add(itemsList);
            }

            await DisplayAlert("Calendar Created", $"{selectedProgram} WorkOut Calendar has been created.", "Great!");
            await Navigation.PopModalAsync();

        }
        catch (Exception)
        {

            await DisplayAlert("Error", "Something went wrong! please try again", "OK");
        }
    }

0 个答案:

没有答案