【问题标题】:How to clear selected item Xamarin list如何清除所选项目 Xamarin 列表
【发布时间】:2017-07-21 17:07:11
【问题描述】:

我有一个显示项目列表的 Xamarin 表单应用程序。当您选择其中一个项目时,应用程序会导航到包含一些详细信息的页面。此详细信息页面还包含标准的“后退”按钮,可将您带回原始列表。

我遇到的问题是这工作正常,除了当我返回主列表时,如果我再次选择相同的项目,没有任何反应。我必须在列表中选择其他一些可以正常工作的项目。

我认为必须清除先前选择的项目或其他东西,但在我尝试过的尝试中,它只会使应用程序崩溃。

这是我正在使用的代码:

listView.ItemSelected += async (sender, e) =>
    {
        string selectedItem = e.SelectedItem.ToString();
        var detailsPage = new ItemDetails(selectedItem); 
        await Navigation.PushAsync(detailsPage);
    };

我在这里需要其他东西来清除详细信息,但是当我在 listView.SelectedItem = null; 中添加时在等待命令之后,当我单击后退按钮时,它导致应用程序崩溃。

我需要在此处添加什么,以便我可以重新选择相同的项目并转到详细信息页面?

【问题讨论】:

    标签: c# listview xamarin xamarin.forms


    【解决方案1】:
    listView.ItemSelected += async (sender, e) =>
    {
        if (e.SelectedItem != null) {
          string selectedItem = e.SelectedItem.ToString();
    
          // clear selected item
          listView.SelectedItem = null;
    
          var detailsPage = new ItemDetails(selectedItem); 
          await Navigation.PushAsync(detailsPage);
        }
    };
    

    【讨论】:

    • 不幸的是,当您选择一个项目并且不显示详细信息页面时,这会导致应用程序崩溃。
    • 有什么例外? AFAIK 这是取消设置所选项目的标准方法。您可能想尝试 ItemTapped 事件,它不会保持选定状态
    • 或者,尝试在您的代码周围添加一个 if (e.SelectedItem != null)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多