我有许多单选按钮,通过绑定到带有命令参数的命令来更改选项,例如:
<RadioButton
Content="Option1"
Command="{Binding ChangeOption}
CommandParameter="Option1" />
更改选项的代码是视图模型非常简单:
public property SelectedOption { get; set; }
public void ChangeOption(string option)
{
SelectedOption = option;
}
这有点简化,但是几乎可以描述这个概念。我缺少的是根据SelectedOption
属性来决定是否选中单选按钮。我想将此属性与Content
的{{1}}(或CommandParameter
)进行比较。这应该在触发器中完成,然后可以更改RadioButton
属性。
问题是,我不知道如何访问数据触发器中的IsSelected
或Content
。我陷入这样的困境:
CommandParamater
我要在数据触发器的<Style.Triggers>
<DataTrigger Binding={Binding SelectedOption} Value="?????">
<Setter Property="IsChecked" Value="True" />
</DataTrigger>
</Style.Triggers>
参数中添加什么,以便将其与所选选项进行比较?
答案 0 :(得分:0)
这种方法可能使您头痛不已。
我建议为这些单选按钮创建一个新类:
public class OptionSelection
{
public bool IsSelected {get; set;}
public string Option {get; set;}
}
然后您可以创建这些项目的ObservableCollection或List,并使用ItemsControl显示它们,并绑定到Option(使用Label或TextBlock)和IsSelected(使用RadioButton)。
在此对象中也实现INotifyPropertyChanged
很重要,这样XAML绑定也会相应更新。