你只需要一個像這樣的枚舉轉換器。
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'。 –
標籤屬性怎麼樣?我有Enum值的RadioButtons。然後我在代碼中使用它們。 –
所以你需要從選定的單選按鈕中得到你的枚舉? – RenDishen