2011-12-13 97 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;} 

} 

我需要的是在我的Datagrid中显示可用的答案单选按钮,当用户选择无线之一将AnswerId的按钮设置为Questions类中的SelectedAnswer属性。

谁能帮助我一直转圈圈试图做到这一点

+0

也许你需要一个自定义的IValueConverter(SL标准答案#2)。 – jv42

+0

看看这个问题的答案: http://stackoverflow.com/questions/2284752/mvvm-binding-radio-buttons-to-a-view-model – opedog

回答

0

有,你可以,如果你正在你的视图模型中使用MVVM,你可以创建一个公共属性,如做这几种方法

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

然后在UI结合类似于

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

假设你有设置在网格或主视图的视图模型的数据上下文。

然后,您可以将此属性绑定到UI,并在选中时可以为另一个元素调用不同的操作或方法。这取决于你如何实现这一点。

如果你不使用mvvm,并且你想在ui中处理这个,你可以使用elementName绑定。这里你基本上绑定了另一个元素的属性(例如,检查一个复选框,并在UI中出现一个值)这里是MSDN上元素名绑定的链接 MSDN Link Here