不能在 CollectionView 上 select 相同的项目两次
Can't select same item twice on CollectionView
我使用 CollectionView
控件来显示文件列表,如果用户单击某个项目,会出现一个弹出窗口,显示有关该文件的信息和一个下载它的按钮,问题是我使用 [= CollectionView
到 运行 此操作的 12=] 方法,但如果用户关闭弹出窗口并再次单击同一项目,则不会发生任何事情。当我们使用 ListView
控件时,每次用户单击同一项目时 ItemTapped
事件 运行s,但我需要更改为 CollectionView
因为稍后我们会更改文件项从单行到多列(2 或 3)。
使用 CollectionView
控件可以让用户多次点击同一个项目吗?
P.D:也尝试将 SelectedItem
设置为空,但如果用户 select 再次使用同一项目,应用程序会崩溃。
当我将 SelectedItem
设置为 null
时它对我有用。当你设置 selectitem 时你还做了什么?
下面是我的简单示例,我使用 DisplayAlert 而不是弹出窗口。
xaml:
<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;
}
}
效果如下:
我使用 CollectionView
控件来显示文件列表,如果用户单击某个项目,会出现一个弹出窗口,显示有关该文件的信息和一个下载它的按钮,问题是我使用 [= CollectionView
到 运行 此操作的 12=] 方法,但如果用户关闭弹出窗口并再次单击同一项目,则不会发生任何事情。当我们使用 ListView
控件时,每次用户单击同一项目时 ItemTapped
事件 运行s,但我需要更改为 CollectionView
因为稍后我们会更改文件项从单行到多列(2 或 3)。
使用 CollectionView
控件可以让用户多次点击同一个项目吗?
P.D:也尝试将 SelectedItem
设置为空,但如果用户 select 再次使用同一项目,应用程序会崩溃。
当我将 SelectedItem
设置为 null
时它对我有用。当你设置 selectitem 时你还做了什么?
下面是我的简单示例,我使用 DisplayAlert 而不是弹出窗口。
xaml:
<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;
}
}
效果如下: