MVVM框架对Converter转换的使用
在用C#wpf的MVVM框架中,我使用Converter对用户的性别进行绑定,首先定义一个类型转化器:
class GenderConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null || parameter == null)
return false;
return value.ToString() == parameter.ToString();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return parameter;
}
}
创建的GenderConverter的类名继承IValueConverter基类,并且实现IValueConverter的 Convert和ConvertBack两个方法接口,在方法中获取类型的值,并返回结果。然后在页面使用xamls的命名空间把定义好的这个转化类型的类引用到主页面:
然后定义窗口资源:
最后是样式数据绑定的转换:
<StackPanel Grid.Row="2" Orientation="Horizontal">
<TextBlock Margin="20 0 0 0" Text="性 别:"/>
<RadioButton Template="{StaticResource GenderRadioButtonTemplate}" IsEnabled="False"
IsChecked="{Binding UserMessage.gender,Converter={StaticResource genderConverter},ConverterParameter=男}"
Foreground="White" Margin="10 0 0 0" Content="男"/>
<RadioButton Template="{StaticResource GenderRadioButtonTemplate}" IsEnabled="False"
IsChecked="{Binding UserMessage.gender,Converter={StaticResource genderConverter},
ConverterParameter=女}" Foreground="White" Margin="10 0 0 0" Content="女"/>
</StackPanel>
下面看看绑定后的数据在页面的显示:
上面就是对Converter转换的使用,如果有更好的方法,欢迎进行学习交流。