使用场景:ViewModel中的数据如果跟View中的数据类型不匹配。
下面是以int类型调控是否可见为例子
步骤一:创建转换器类
在xaml中查看Converter的定义可以知道Converter是一个接口类型,因此转换器的类定义需要使用这个接口
internal class VisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if ((int)value == 1)
{
return Visibility.Visible;
} else
{
return Visibility.Collapsed;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return null;
}
}
? ? ? ? -- 方法中value就是xaml中的传入值
xaml中的使用该转换器:
首先将该资源引用
<Window.Resources>
<local:VisibilityConverter x:Key="vc"/>
</Window.Resources>
然后通过静态资源按照key直接使用就行了
Visibility="{Binding MyProperty, Converter={StaticResource vc}}
附加
如果需要使用Bool类型去控制是否显示,wpf有帮我们写好了BooleanToVisibilityConverter,直接在资源中引用,指定好Key就可以直接使用了