【问题标题】:clear ListView item selection Xamarin.Forms清除 ListView 项目选择 Xamarin.Forms
【发布时间】:2019-04-17 02:25:53
【问题描述】:

我在导航页面中有名为“Main_Menu”的列表视图。当我单击它时,它会显示其他页面。当我返回带有 Main_Menu 的页面时,我想做明确的选择。
请帮我。谢谢

附言

((ListView)sender).SelectedItem = null; 

在 onAppear() 或 onDisappear() 时会导致崩溃;

【问题讨论】:

  • 很抱歉,因为我不知道 xamarin.forms 是否会有所作为,所以很抱歉,但您可以设置 ((ListView)sender).SelectedIndex = -1;
  • 这行代码到底在哪里?
  • ((ListView)sender).SelectedItem = null;我试过把它放在 onAppear() 和 onDisappear()
  • "sender" 在 OnAppearing 或 OnDisappearing 中没有任何上下文。
  • 我知道。我终于找到了解决方案

标签: c# listview xamarin.forms


【解决方案1】:

这是一个解决方案:

 if (e.SelectedItem == null)
        {
            return;
        }
((ListView)sender).SelectedItem = null;

【讨论】:

    【解决方案2】:

    这里是如何使用 ItemSelected 事件处理程序设置 SelectedItem。将事件处理程序添加到您的 XAML 文件中,然后将事件处理程序添加到其背后的代码中。

    <!-Page.xaml-/>
    <ListView x:Name="myList"   
        ItemsSource="{Binding Items}"
        SelectedItem="{Binding SelectedItem}"
        HasUnevenRows="true"
        ItemSelected="OnItemSelected"/>
    
    // in your code behind Page.xaml.cs
    void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
    {
       if (sender!= null && sender is ListView listview)
       {
           if (e != null)  e.SelectedItem = null;
       }
    }
    

    【讨论】:

    • 当您选择一个项目时,SelectionMode=None 应该在您点击后取消选择该项目。除非您想创建自己的控件/渲染器,否则无法一开始就阻止选择项目。
    • 我更新了我的答案。它现在展示了如果用户选择了一个项目,如何将 SelectItem 重置为 null。同样,它将首先选择 CellView,然后取消选择该项目。使用 Xamarin.Forms ListView 可以做到的最好的事情
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    相关资源
    最近更新 更多