• 自定义Converter


    一般转换器

    <UserControl.Resources>

    </UserControl.Resources>

    Half

    IsNullOrEmpty

    using System;
    using System.Globalization;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Media;
    internal class IsNullOrEmptyConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return string.IsNullOrEmpty((string)value);
        }
    
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return DependencyProperty.UnsetValue;
        }
    }
    

    Number2PercentageConverter

    public class Number2PercentageConverter : IMultiValueConverter
    {
        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            if (values == null || values.Length != 2) return .0;
    
            var obj1 = values[0];
            var obj2 = values[1];
    
            if (obj1 == null || obj2 == null) return .0;
    
            var str1 = values[0].ToString();
            var str2 = values[1].ToString();
    
            var v1 = str1.Value<double>();
            var v2 = str2.Value<double>();
    
            if (MathHelper.IsVerySmall(v2)) return 100.0;
    
            return v1 / v2 * 100;
        }
    
        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
    

    String2VisibilityConverter

    public class String2VisibilityConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return string.IsNullOrEmpty((string)value) ? Visibility.Collapsed : Visibility.Visible;
        }
    
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return value != null && (Visibility)value == Visibility.Collapsed;
        }
    }
    

    ImagePathConverter

    public class ImagePathConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            string path = (string)value;
            if (!string.IsNullOrEmpty(path))
            {
                return new System.Windows.Media.Imaging.BitmapImage(new Uri(path, UriKind.RelativeOrAbsolute));
            }
            else
            {
                return null;
            }
    
        }
    
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return null;
        }
    }
    

    IndentConverter

    public class IndentConverter : IValueConverter
    {
    
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            double colunwidth = 10;
            double left = 0.0;
    
    
            UIElement element = value as TreeViewItem;
            while (element.GetType() != typeof(TreeView))
            {
                element = (UIElement)VisualTreeHelper.GetParent(element);
                if (element.GetType() == typeof(TreeViewItem))
                    left += colunwidth;
            }
            return new Thickness(left, 0, 0, 0);
        }
    
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    
    }
    
  • 相关阅读:
    sql更细
    机器学习实战1000例(二)逻辑回归实现乳腺癌肿瘤预测
    机器学习实战1000例(一)线性回归实现广告数据分析
    微软外服工作札记②——聊聊微软的知识管理服务平台和一些编程风格
    克隆虚拟机之后更改ip报错Bringing up interface eth0: Error: No suitable device found: no device found for connection 'System eth0'.
    vmware两台虚拟机设置共享磁盘
    PowerShell创建IIS网站
    单元测发生 System.BadImageFormatException
    Asp.NET WebAPI使用文件服务
    .NET6 全局using
  • 原文地址:https://www.cnblogs.com/wesson2019-blog/p/14755962.html
Copyright © 2020-2023  润新知