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

相关推荐
zhojiew3 小时前
使用flink agent框架实现流式情感分析的示例
大数据·flink·wpf
海盗12343 小时前
ScottPlot在WPF的基本使用和中文乱码问题
c#·.net·wpf
俄城杜小帅4 小时前
C++线程异步和wpf中比较
java·c++·wpf
ZoeJoy86 小时前
WPF 从入门到实践:基础、ModernUI 与 MVVM 完全指南
c#·wpf
△曉風殘月〆1 天前
WPF Prism中的MVVM实现
wpf·mvvm
量子物理学1 天前
.NET8 中 WPF与ScottPlot 报表 的完美结合
.net·wpf
△曉風殘月〆1 天前
WPF Prism区域导航功能详解
wpf·mvvm
星河Cynthia2 天前
WPF基于resx资源文件的多语言实现
c#·wpf
量子物理学2 天前
WPF 标签预览可以显示图片运行后不显示
c#·wpf
△曉風殘月〆2 天前
WPF Prism中的依赖注入详解
wpf·mvvm