如何检索选定的单选按钮的动态生成的单选按钮在WPF Mvvm

本文关键字:单选按钮 动态 Mvvm WPF 何检索 检索 | 更新日期: 2023-09-27 18:06:46

使用WPF和MVVM模式,我得到一个动态填充单选按钮的列表框。

<ListBox ItemsSource="{Binding SupportedNtgs}"  VerticalAlignment="Stretch" Background="Transparent">                
       <ListBox.ItemTemplate>
            <DataTemplate>
                 <RadioButton GroupName="SupportedNtgsRadioButtonList" Content="{Binding Item2}" />
             </DataTemplate>
       </ListBox.ItemTemplate>
</ListBox>

在我的ViewModel中我得到了一个属性

    public Ntg SelectedNtg
    {
        get { return VariantInfo.Ntg; }
        set
        {
            if (VariantInfo.Ntg == value) { return; }
            VariantInfo.Ntg = value;
            RaisePropertyChanged("SelectedNtg");
        }
    }

ListBox绑定到的SupportedNtgsIEnumerable

public IEnumerable<Tuple<Ntg, String>> SupportedNtgs
{
        get
        {
            if (this.supportedNtgs == null) {
                this.supportedNtgs = new List<Tuple<Ntg, string>>();
                foreach (var item in this.provider.SupportedNtgs) {
                    this.supportedNtgs.Add(new Tuple<Ntg, string>(item, EnumHelper<Ntg>.Description(item)));
                }
            }
            return this.supportedNtgs;
        }
}

谁能告诉我什么是最简单的方法来存储用户选择在我的SelectedNtg属性,而不做任何改变我的Ntg类?谢谢你

谢谢

如何检索选定的单选按钮的动态生成的单选按钮在WPF Mvvm

给你

  • 添加了绑定SelectedItem与SelectedNtg SelectedItem="{Binding SelectedNtg}"
你的xaml

<ListBox ItemsSource="{Binding SupportedNtgs}" 
         VerticalAlignment="Stretch" Background="Transparent" 
         SelectedItem="{Binding SelectedNtg}" >                
   <ListBox.ItemTemplate>
        <DataTemplate>
             <RadioButton GroupName="SupportedNtgsRadioButtonList" 
                          Content="{Binding Item2}" />
         </DataTemplate>
   </ListBox.ItemTemplate>
</ListBox>

这将把选中的项目推到视图模型的属性中,因此你将获得你正在寻找的数据