首页 > 解决方案 > 无法在 CollectionView 上选择两次相同的项目

问题描述

我使用CollectionView控件来显示文件列表,如果用户单击一个项目,则会出现一个弹出窗口,显示有关文件的信息和一个下载它的按钮,问题是我使用 的SelectionChanged方法CollectionView来运行此操作,但是如果用户关闭弹出窗口并再次单击同一项目没有任何反应。回到我们使用ListView控件时,ItemTapped每次用户单击同一项目时都会运行该事件,但我需要更改为,CollectionView因为稍后我们会将文件项目从单行更改为多列(2 或 3)。

是否可以让用户通过控制多次点击同一个项目CollectionView

PD:也尝试将 设置SelectedItem为 null 但如果用户再次选择相同的项目,应用程序将崩溃。

标签: xamarin.formscollectionview

解决方案


当我SelectedItem设置null为时它对我有用。当你设置选择项时你还做了什么?

下面是我的简单示例,我使用 DisplayAlert 而不是弹出窗口。

xml:</p>

<CollectionView x:Name="collection" SelectionChanged="CollectionView_SelectionChanged" SelectionMode="Single" >
            <CollectionView.ItemsSource>
                <x:Array Type="{x:Type x:String}">
                    <x:String>Baboon</x:String>
                    <x:String>Capuchin Monkey</x:String>
                    <x:String>Blue Monkey</x:String>
                    <x:String>Squirrel Monkey</x:String>
                    <x:String>Golden Lion Tamarin</x:String>
                    <x:String>Howler Monkey</x:String>
                    <x:String>Japanese Macaque</x:String>
                </x:Array>
            </CollectionView.ItemsSource>
</CollectionView>  

在页面 xaml.cs 中:

private async void CollectionView_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (collection.SelectedItem != null)
        {
            await DisplayAlert("Question?", "Would you like to play a game", "Yes", "No");          
            collection.SelectedItem = null;

        }

    }

效果如下:</p>

在此处输入图像描述


推荐阅读