• WPF学习整理总结 --转换器


    作用

    1.可以将源数据和目标数据之间进行特定的转化

    2.定义转换器,需要继承接口IValueConverter

     class ForeColorConverter : IValueConverter
        {
            public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
            {
                if (value == null) throw new ArgumentNullException("value can not be null");
                int index = System.Convert.ToInt32(value);
                if (index == 0)
                    return "Blue";
                else if (index == 1)
                    return "Red";
                else
                    return "Green";
            }
    
            public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
            {
                return null;
            }
        }

    Convert:会进行源属性传给目标属性的特定转化

    ConvertBack:会进行目标属性传给源属性的特定转化

    参数parameter:对应Binding的ConverterParameter属性

    3.使用转换器

    (1)引用转换器所在的命名空间

      xmlns:local="clr-namespace:Converter"

    (2)定义资源

     <UserControl.Resources>
            <local:ForeColorConverter x:Key="forColorConverter"/>
        </UserControl.Resources>

    (3)定义属性

      public UserControl1()
            {
                InitializeComponent();
                this.DataContext = new ViewModel();
            }
            public class ViewModel : ViewModelBase
            {
                private int status = 0;
                public int Status
                {
                    get => status; set { status = value; RaisePropertyChanged(" Status"); }
    
                }
            }

    (4)绑定属性,添加转换器

    <Grid>
            <Label HorizontalAlignment="Left" Height="23" Margin="243,208,0,0" Content="这里哦" Foreground="{Binding Status,Converter={StaticResource forColorConverter},Mode=OneWay}" VerticalAlignment="Top" Width="120"/>
            <TextBox x:Name="tbName" HorizontalAlignment="Left" Height="23" Margin="243,160,0,0" TextWrapping="Wrap" Text="{Binding Status,UpdateSourceTrigger=LostFocus,Mode=OneWayToSource}" VerticalAlignment="Top" Width="120"/>
            <Button Content="Button" HorizontalAlignment="Left" Margin="389,160,0,0" VerticalAlignment="Top" Width="75"/>
        </Grid>
     
  • 相关阅读:
    postgresql 排序索引
    postgresql 外键约束是否自动索引,unique约束是否自动建索引,主键是否自动建索引
    nginx缓存失效--vim选择后u将所有大小转换为了小写
    linux内核参数调优
    如何让自己的网站在搜索引擎中出现
    linux 查看系统版本
    nginx 模板
    深浅拷贝2
    字典 综合逻辑
    字典 dict
  • 原文地址:https://www.cnblogs.com/jiangxiaoming/p/14236428.html
Copyright © 2020-2023  润新知