赞
踩
使用场景: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就可以直接使用了
如果是想要Margin绑定上Slider的值,在转换器中返回的是Thickness,Slider的Value值是double类型,Margin="{Binding ElementName=myslider, Path=Value, Converter={StaticResource myConverter}}"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。