zoukankan      html  css  js  c++  java
  • MVVM转换器Int2StringConverter基础类

    很多时候都是会用到int 转换为字符串的情况的转换器

    可能在编辑界面需要一个下拉框来显示列表

    在列表页面需要一个转换器显示为具体的字符串数据

    这个时候使用,有一个Items属性的转换器,就都搞定了

    using Client.Model;
    using System;
    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    using System.Linq;
    using System.Text;
    using System.Windows.Data;
    
    namespace Client.Common.Converter
    {
        [ValueConversion(typeof(int), typeof(string))]
        public class Int2StringConverter : NotifyPropertyChanged, IValueConverter
        {
            public Int2StringConverter()
            {
                Items = new ObservableCollection<ListItem>();
                InitialItems();
            }
    
            protected virtual void InitialItems()
            {
    
            }
            public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                string result = string.Empty;
                if (value == null)
                {
                    return result;
                }
                int sourceValue = System.Convert.ToInt32(value);
                var model = Items.Where(f => f.Value == sourceValue).FirstOrDefault();
                if (model != null)
                    result = model.DisplayName;
                return result;
            }
    
            public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                int result = -1;
                if (value == null)
                {
                    return result;
                }
                string sourceValue = value.ToString();
                var model = Items.Where(f => f.DisplayName == sourceValue);
                if (model.Count() > 0)
                    result = model.First().Value.Value;
                return result;
            }
    
    
            private ObservableCollection<ListItem> items;
    
            public ObservableCollection<ListItem> Items
            {
                get { return items; }
                set
                {
                    items = value;
                    OnPropertyChanged("Items");
                }
            }
    
    
        }
    }
    

      

  • 相关阅读:
    Leangoo:用敏捷开发管理思维做团队协作的SaaS软件
    张江男的逆袭,我如何使用leangoo提升团队效率
    探索leangoo常用快捷键
    Tkinter教程之Event篇(3)
    Tkinter教程之Event篇(2)
    Tkinter教程之Event篇(1)'
    Tkinter教程之Grid篇
    Tkinter教程之Pack篇
    Tkinter教程之Canvas篇(4)
    Tkinter教程之Canvas篇(3)
  • 原文地址:https://www.cnblogs.com/crazycxy/p/5985419.html
Copyright © 2011-2022 走看看