我使用最新版本的.Net Maui。在这个场景中,有一个绑定到ItemsSource的CarouselView的ObservableCollection项。用户应该对当前项执行一些操作,使其“有效”,以便能够移动到下一个项。CarouselView应该阻止用户刷卡到下一个项,直到当前项有效,有效状态由项的属性定义。
我想到的第一件事是订阅Scroll或PositionChanged事件之一并取消动作传播,但我认为这些事件是不可取消的,在even参数中找不到它。第二种不太理想的实现方式是,一旦当前项有效,就将项动态添加到项的ObservableCollection中。由于当前项总是最后一项,因此它将无法转到下一项。虽然这似乎是一个有点笨拙的方法来解决这个问题,我更喜欢在视图级别上实现它,而不是模型级别上(动态添加项目)。所以如果你知道更直接的方法来实现它,请告诉我。谢谢。
更新:我希望用户能够刷卡到所有以前处理的项目(所有有效),来回,但只有有效的卡。
1条答案
按热度按时间drnojrws1#
当目前项目尚未生效时,请将属性
IsSwipeEnable
设定为false
。从文档
IsSwipeEnabled,类型为bool,它确定滑动手势是否会更改显示的项。默认值为true。