2011-12-13 4 views
0

私は、以下の質問クラスにバインドされたデータグリッドビュー持っている:XAMLラジオボタン

public class Questions() 

{ 

public int QuestionId{get; set;} 
public string Question {get; set;} 
public List<Answers> AvailableAnswers {get; Set;} 
public string SelectedAnswer {get; set;} 

} 

public class Answers() 
{ 

public int AnswerId {get; set;} 
public string Answer {get; set;} 
public bool IsSelected {get; set;} 

} 

私は必要なものは、ラジオボタンとして使用可能な回答を示すために、私のデータグリッド内で、ユーザーがラジオのいずれかを選択した場合AnswerIdが質問クラスのSelectedAnswerプロパティとして設定されるようにするボタン。

私はあなたがこれを行うことができますいくつかの方法は、あなたのビューモデル内MVVMを使用している場合は、次のようなパブリックプロパティを作成することができますがあります。この

+0

カスタムIValueConverter標準的な答え#2)。 – jv42

+0

同じ質問に対するこの回答を確認してください: http://stackoverflow.com/questions/2284752/mvvm-binding-radio-buttons-to-a-view-model – opedog

答えて

0

をやろうとした円でラウンド予定されているとして、誰が助けることができますUIで

private bool _isAnswer1; 
    public bool IsAnswer1 
    { 
     get { return _isAnswer1; } 
     set 
     { 
      _isAnswer1 = value; 
      NotifyPropertyChanged(m => m.IsAnswer1); //I used i notify property changed but this is inherited from the base class 
     } 
    } 

そして、あなたはグリッドまたはビューモデルにメインビューに設定されたデータコンテキストを持っていると仮定すると

<CheckBox x:Name="testCheckBox" IsChecked="{Binding IsAnswer1} /> 

に似て結合。

このプロパティをUIにバインドし、チェックすると別の要素に対して別のアクションまたはメソッドを呼び出すことができます。それは単にあなたがこれを実装する方法に依存します。

mvvmを使用しておらず、これをUIで処理したい場合は、elementNameバインディングを使用できます。ここでは、基本的にある要素のプロパティを別の要素の値にバインドします(例:チェックボックスをオンにしてUIに値を表示させます)。次に、要素名バインディングに関するMSDNのリンクを示します。 MSDN Link Here