具有多个选择的Xamarin Forms Collection-限制所选项目的数量

时间:2019-10-09 22:27:40

标签: xamarin xamarin.forms collectionview

我需要限制从CollectionView中选择的项目的数量。 例如:我有一个CollectionView列表中有20个项目,但是用户只能从20个项目中选择5个。这可能吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

这是可能。您可以通过SelectableItemsView.SelectedItems Property知道选择了多少项。

并调用SelectableItemsView.SelectionChanged Event来监视其计数,如下所示:

XML:

    <CollectionView x:Name="collectionView"
                    ItemsSource="{Binding Monkeys}"
                    SelectionMode="Multiple"
                    SelectionChanged="collectionView_SelectionChanged"
                    SelectedItems="{Binding SelectedMonkeys}">
        ...
    </CollectionView>

ContentPage:

private void collectionView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    Console.WriteLine("count is :" + collectionView.SelectedItems.Count);
    if(collectionView.SelectedItems.Count < 20 & collectionView.SelectedItems.Count >5)
    {
        // write code you want .
    }
}

这是官方document,还有官方sample供参考。

答案 1 :(得分:0)

这不理想,但是可以解决:

void OnCollectionViewSelectionChanged(object sender, SelectionChangedEventArgs e) {
   if (list.SelectedItems.Count > 5) 
   { 
      list.SelectedItems.Remove(list.SelectedItems[list.SelectedItems.Count - 1]); 
   } 
}