簡體   English   中英

Xamarin.Forms CarouselView CurrentItem 綁定在 v4.6.0.772 中不起作用

[英]Xamarin.Forms CarouselView CurrentItem binding not working in v4.6.0.772

我有一個輪播視圖和一個按鈕。 我想當用戶單擊按鈕輪播更改 CurrentItem。 這是我的 xaml:

 <StackLayout>
    <CarouselView CurrentItem="{Binding Answer}" ItemsSource="{Binding Answers}">
        <CarouselView.ItemTemplate>
            <DataTemplate>
                <Label Text="{Binding Display}"/>
            </DataTemplate>
        </CarouselView.ItemTemplate>
    </CarouselView>
    <Button Text="Next" Command="{Binding OnNext}"/>
</StackLayout>

這是我的視圖模型:

public class MyViewModel : INotifyPropertyChanged
{
    private List<Answer> _answers;
    private Answer _answer;
    private int _index = 0;

    public MyViewModel()
    {
        Answers = new List<Answer>()
        {
            new Answer("Ans1"),
            new Answer("Ans2"),
            new Answer("Ans3"),
        };
        Answer = Answers[_index];
        OnNext = new Command(() =>
        {
            _index++;
            Answer = Answers[_index];
        });
    }

    public List<Answer> Answers
    {
        get { return _answers; }
        set
        {
            if (_answers != value)
            {
                _answers = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Answers)));
            }
        }
    }

    public Answer Answer
    {
        get { return _answer; }
        set
        {
            if (_answer != value)
            {
                _answer = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Answer)));
            }
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    public ICommand OnNext { get; set; }
}

這是我設置綁定上下文的方式:

   protected override void OnAppearing()
    {
        base.OnAppearing();
        BindingContext = new MyViewModel();
    }

“答案”是簡單的 class 具有一個字符串屬性顯示

此代碼在 xamarin.forms 4.4.0.991265 中完全有效,但是當我將 XF 更新為 4.6.0.772 時,它停止更改 CurrentItem,並且當我按下“下一步”按鈕時輪播不會移動。

同圖與 Position 綁定。 當我在 model 視圖中增加 position 時,它在 4.4.0.991265 中有效,但在 4.6.0.772 中無效。

我在 android 模擬器上試過:Android 9.0 - API 28

嘗試:

public ObservableCollection<Answer> _answers { get; set; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM