2016-07-11 5 views
1

XLabsプロジェクトのthisコントロールを使用しています。バインディングと選択はうまく動作しますが、このコントロールを何らかのサーベイで使用しています。クライアントがNextボタンをクリックして次の質問を表示した後、前の回答(このコントロールのオプション)を選択解除したいと思います。どのようにこれを行うにはどのようなアイデア?Xamarin.FormsのBindableRadioGroupからのオプションの選択解除

<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; 
    } 

答えて

1

答えはMVVMのスタイルで非常にエレガントではないではないですが、働いています。下に掲載されたコードは、ビューのCodeBehindに配置する必要があります。

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; 
     } 
    } 
関連する問題