在DataBinding中使用控件属性

问题描述 投票:0回答:1

我有一些单选按钮用于更改选项,通过绑定到带有命令参数的命令,如下所示:

<RadioButton
  Content="Option1"
  Command="{Binding ChangeOption}
  CommandParameter="Option1" />

更改选项的代码是视图模型非常简单:

public property SelectedOption { get; set; }

public void ChangeOption(string option)
{
    SelectedOption = option;
}

这有点简化,但它几乎描述了这个概念。我缺少的是,根据SelectedOption属性来决定是否选中单选按钮。我想将这个属性与ContentCommandParameter(或RadioButton)进行比较。这应该在触发器中完成,然后可以改变IsSelected属性。

问题是,我无法弄清楚,如何在数据触发器中访问ContentCommandParamater。我被困在这样的事情:

<Style.Triggers>
  <DataTrigger Binding={Binding SelectedOption} Value="?????">
    <Setter Property="IsChecked" Value="True" />
  </DataTrigger>
</Style.Triggers>

我应该在数据触发器的Value参数中添加什么,以将其与所选选项进行比较?

c# wpf xaml radio-button datatrigger
1个回答
0
投票

这种方法可能会让你更头疼而不是它的价值。

我建议为这些单选按钮创建一个新类:

public class OptionSelection
{
    public bool IsSelected {get; set;}
    public string Option {get; set;}
}

然后,您可以创建ObservableCollection或这些项的列表,并使用ItemsControl显示它们,绑定到Option(使用Label或TextBlock)和IsSelected(使用您的RadioButton)。

在此对象中实现INotifyPropertyChanged非常重要,以便XAML绑定相应地更新。

© www.soinside.com 2019 - 2024. All rights reserved.