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

相关推荐
脚踏实地皮皮晨8 小时前
003006001_WrapPanel控件
开发语言·c#·.net·wpf·visual studio
脚踏实地皮皮晨9 小时前
003005002_WPF StackPanel 基类官方类定义逐行深度解析
开发语言·windows·算法·c#·wpf·visual studio
脚踏实地皮皮晨14 小时前
003004002_UniformGrid控件的使用方法
开发语言·c#·.net·wpf·visual studio
脚踏实地皮皮晨2 天前
003003002_WPF Grid 基类官方类定义逐行深度解析
开发语言·windows·算法·c#·wpf·visual studio
脚踏实地皮皮晨3 天前
003002004_WPF Panel 基类 官方类定义
开发语言·windows·算法·c#·wpf·visual studio
湿滑路面3 天前
Rouyan:使用WPF/C#构建的基于LLM的快捷翻译小工具
开发语言·c#·wpf
软萌萌的13 天前
C#中的多级缓存架构设计与实现深度解析
缓存·c#·wpf
dalong103 天前
WPF:3D正八面体自动旋转
3d·wpf
仙宇觉尘3 天前
WPF Stylet可以如何实现导航功能?
java·开发语言·wpf
丙氨酸長鏈4 天前
WPF 引用 ASP.NET Core 的 AOT 版本
后端·asp.net·wpf