为了实现对多种情况的处理 , 需要每一个radiobutton对应的是不同的情况 ,因此需要专递一个复杂的参数来实现想要的功能
要实现该功能 关键部分是绑定中的数据转换部分 ,所以需要我们自己写一个数据转换方式 。我们所写的数据转换类必须继承自
IValueConverter 同时实现Convert和ConvertBack这两个接口。传递的参数赋给ConverterParameter,在Convert和ConvertBack
中实现对数据的处理。
下面是实现的对int类型数据的转换
xaml中绑定为IsChecked="{Binding Type,ConverterParameter= 9,Converter={StaticResource radioBoolToInt}}" Type为一个int类型的数
ConverterParameter是当前radiobutton所代表的状态 radioBoolToInt是实现的数据转换方式,具体的数据转换类如下:
public class RadioBoolToInt:IValueConverter
{
public object Convert(object value,Type targetType,object parameter,CultureInfo culture)
{
if ((int)value == int.Parse(parameter.ToString()))
return true;
else
return false;
}
public object ConvertBack(object value, Type targetType, object paramter, CultureInfo culture)
{
return paramter;
}