Вам просто нужен конвертер enum, подобный этому.
public class EnumRadioButtonConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
return value.ToString() == parameter.ToString();
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
return (bool)value ? Enum.Parse(typeof(MyEnum), parameter.ToString(), true) : null;
}
}
И это, как вы используете его (не забудьте дать им GroupName
). Вам необходимо будет определить свойство SelectedEnum
(типа MyEnum
) в вашей модели просмотра, конечно.
<RadioButton IsChecked="{Binding SelectedEnum, ConverterParameter=MyValTwo, Converter={StaticResource EnumRadioButtonConverter}, Mode=TwoWay}" GroupName="MyRadioButtonGroup" />
<RadioButton IsChecked="{Binding SelectedEnum, ConverterParameter=MyValOne, Converter={StaticResource EnumRadioButtonConverter}, Mode=TwoWay}" GroupName="MyRadioButtonGroup" />
Для использования преобразователя необходимо указать его в разделе ресурсов.
<Page.Resources>
<local:EnumRadioButtonConverter x:Key="EnumRadioButtonConverter" />
Вы можете найти рабочую пробу here.
Какова ваша цель? Вы хотите связать перечисления? Вы не можете связывать атрибуты, такие как 'x: Name'. –
Что относительно атрибута тега? У меня есть RadioButtons значений Enum. Затем я использую их в коде. –
Итак, вам нужно получить свой список из выбранного радиообъектива? – RenDishen