从 Xamarin.Forms 中的 BindableRadioGroup 中取消选择选项

本文关键字:取消 选择 选项 BindableRadioGroup Xamarin Forms 中的 | 更新日期: 2023-09-27 17:56:12

我正在使用XLabs项目中的这个控件。绑定和选择工作正常,但我在某种调查中使用此控件,我想在客户端单击按钮查看下一个问题后取消选择Next答案(此控件中的选项)。任何想法如何做到这一点?

<controls:BindableRadioGroup 
                ItemsSource="{Binding Answers}"
                SelectedIndex="{Binding AnswerSelected, Mode=TwoWay}"
                Style="{StaticResource radioGroupStyle}" />

绑定到按钮的命令:

public IAsyncCommand NextCommand
    {
        get
        {
            return new AwaitableDelegateCommand(async () => await Next(), CanGoToNextQuestion);
        }
    }

和方法:

private async Task Next()
    {
        CurrentQuestionIndex++;
        AnsweredQuestions.Add(
            new QuestionDto
            {
                QuestionId = CurrentQuestion.QuestionId,
                QuestionText = CurrentQuestion.QuestionText,
                Answer = Answers.ElementAt(AnswerSelected).Value,
            });
            // some stuff here

        AnswerSelected = -1;
    }
    private bool CanGoToNextQuestion()
    {
        return AnswerSelected != -1;
    }

从 Xamarin.Forms 中的 BindableRadioGroup 中取消选择选项

答案不是很优雅,也不是MVVM风格,但正在工作。下面发布的代码应放置在视图中的代码隐藏中。

    void Handle_Clicked(object sender, System.EventArgs e)
    {
        ClearRadioGroup();
    }
    private void ClearRadioGroup()
    {
        foreach (var child in grupa.Children)
        {
            var radio = (CustomRadioButton)child;
            radio.Checked = false;
        }
    }