WPF中数据绑定转换器Converter

使用场景:ViewModel中的数据如果跟View中的数据类型不匹配。

下面是以int类型调控是否可见为例子

步骤一:创建转换器类

在xaml中查看Converter的定义可以知道Converter是一个接口类型,因此转换器的类定义需要使用这个接口

cs 复制代码
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中的使用该转换器:

首先将该资源引用

XML 复制代码
<Window.Resources>
    <local:VisibilityConverter x:Key="vc"/>
</Window.Resources>

然后通过静态资源按照key直接使用就行了

XML 复制代码
Visibility="{Binding MyProperty, Converter={StaticResource vc}}

附加

如果需要使用Bool类型去控制是否显示,wpf有帮我们写好了BooleanToVisibilityConverter,直接在资源中引用,指定好Key就可以直接使用了

相关推荐
你的不安3 分钟前
C#中 管理NuGet程序包
开发语言·c#·wpf
军训猫猫头3 小时前
5.正弦波生成器:支持连续相位与可控重置 C# + WPF 完整示例
c#·.net·wpf
娶不到胡一菲的汪大东3 小时前
WPF--布局控件
ui·wpf
xiaoye37086 小时前
Spring中使用自定义@Lock 注解解决线程并发问题
java·spring·wpf
逻极6 小时前
Temporal 完全指南:分布式应用的后台“总指挥”
分布式·微服务·wpf·消息中间件·temporal
code bean6 小时前
【WPF】 WPF “相等不通知”陷阱
wpf
就是有点傻7 小时前
WPF中如何将页面最小化时放入托盘
wpf
aini_lovee17 小时前
33节点配电网分布式发电(DG)最优分布MATLAB实现
分布式·matlab·wpf
czhc114007566317 小时前
wpf 28
wpf
baivfhpwxf202317 小时前
WPF Binding 绑定 超详细详解
c#·wpf