我有一个绑定到我的集合CarouselView
,我想让 的Loop
属性CarouselView
仅在集合中有多个元素时才为真。这应该很容易,但我不知道为什么它不起作用
<CarouselView ItemsSource="{Binding FoodCards}" Loop="{Binding IsLooping}">
在我的ViewModel
我有一个命令,当我按下某个按钮以仅显示一个元素并设置IsLooping
为False
IsLooping = FoodCards.Count > 1;
能达到这个效果吗?或者我们不能Loop
在运行时改变?
编辑:
如果我不更改集合尺寸,则以下答案中的解决方法有效。现在我有一个绑定到 3 个元素的集合,CarouselView
并且我还有一个绑定了命令的按钮。该命令的代码是:
void OnChangeLoop(){
Items.Clear();
Items.Add("item1");
Items.Add("item2");
Loop = !Loop;
}
在后面的代码中,我有PropertyChanged
. 当我按下按钮时,我得到java.Lang.IllegalArgumentException: 'Invalid target position