using KGIS.Framework.Platform;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Kingo.PluginServiceInterface.Model
{
    [Serializable]
    public class BatchAttribute : INotifyPropertyChanged
    {
        private string _AttributeName;
        /// 
        /// 属性名称
        /// 
        public string AttributeName
        {
            get
            {
                return _AttributeName;
            }
            set
            {
                _AttributeName = value;
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs("AttributeName"));
                }
            }
        }
        private string _AttributeAliasName;
        /// 
        /// 属性别名称
        /// 
        public string AttributeAliasName
        {
            get
            {
                return _AttributeAliasName;
            }
            set
            {
                _AttributeAliasName = value;
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs("AttributeAliasName"));
                }
            }
        }
        private string _AttributeValue;
        /// 
        /// 属性值
        /// 
        public string AttributeValue
        {
            get
            {
                return _AttributeValue;
            }
            set
            {
                _AttributeValue = value;
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs("AttributeValue"));
                }
            }
        }
        public bool IsCheck { get; set; }
        private List _DicData;
        public List DicData
        {
            get
            {
                return _DicData;
            }
            set
            {
                _DicData = value;
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs("DicData"));
                }
            }
        }
        private string _DisplayPath;
        /// 
        /// 显示字段(初始化字典绑定)
        /// 
        public string DisplayMemberPath
        {
            get
            {
                if (string.IsNullOrWhiteSpace(_DisplayPath))
                    return "NAME";
                return _DisplayPath;
            }
            set
            {
                _DisplayPath = value;
                //if (PropertyChanged != null)
                //{
                //    PropertyChanged(this, new PropertyChangedEventArgs("DisplayMemberPath"));
                //}
            }
        }
        private string _ValuePath;
        /// 
        /// 值字段(初始化字典绑定)
        /// 
        public string ValuePath
        {
            get
            {
                if (string.IsNullOrWhiteSpace(_ValuePath))
                    return "CODE";
                return _ValuePath;
            }
            set
            {
                _ValuePath = value;
                //if (PropertyChanged != null)
                //{
                //    PropertyChanged(this, new PropertyChangedEventArgs("ValuePath"));
                //}
            }
        }
        public event PropertyChangedEventHandler PropertyChanged;// = delegate { };
        public enumPropertyType PropertyType { get; set; }
        public enum enumPropertyType
        {
            Default = 0,
            /// 
            /// 文本框
            /// 
            TextBox = 1,
            /// 
            /// 下拉框
            /// 
            ComboBox = 2,
            /// 
            /// 复选框
            /// 
            CheckBox = 3,
            /// 
            /// 日期控件
            /// 
            DatePicker = 4,
            /// 
            /// 数字控件
            /// 
            SpinEdit = 5,
            /// 
            /// 带按钮的文本框
            /// 
            ButtonEdit = 6,
            /// 
            /// 带下拉框的文本框
            /// 
            AutoCompleteBox = 7,
            /// 
            /// 附件的文本选择框
            /// 
            ButtonEditFJ = 8
        }
    }
    
}