使用场景: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就可以直接使用了