0
我有一个场景,我为一组单选按钮保留了三个不同的属性是否有可能使它单一?拥有3个单选按钮的单个属性并没有正确更新
<RadioButton GroupName="os" IsChecked="{Binding Age} IsChecked="{Binding Name,Mode=TwoWay,Converter={StaticResource enumConverter},ConverterParameter=a}"/>
<RadioButton GroupName="os" IsChecked="{Binding Age,Mode=TwoWay,Converter={StaticResource enumConverter},ConverterParameter=b}"/>
<RadioButton GroupName="os" IsChecked="{Binding Age,Mode=TwoWay,Converter={StaticResource enumConverter},ConverterParameter=c}"/>
在这里,我需要编写一个字符串转换,其中,我将经过转换器参数为A,B,C为各单选按钮。
public class EnumMatchToBooleanConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
if (value == null || parameter == null)
return false;
//string checkValue = value.ToString();
//string targetValue = parameter.ToString();
//return checkValue.Equals(targetValue,
// StringComparison.InvariantCultureIgnoreCase);
if (value.ToString() == "True" && (parameter.ToString() == "a" || parameter.ToString() == "b" || parameter.ToString() == "c"))
{
return true;
}
else
return false;
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
if (value == null || parameter == null)
return null;
//bool useValue = (bool)value;
//string targetValue = parameter.ToString();
//if (useValue)
// return Enum.Parse(targetType, targetValue);
//return null;
if (value.ToString() == "True" && (parameter.ToString() == "b" || parameter.ToString() == "a" || parameter.ToString() == "c"))
{
return true;
}
else
return false;
}
}
您是否尝试了我的建议或发生了什么? – mm8