
///////////////////////////////////////////////////////////////////////////////  
//文件名称: WinManitainerProjectInfo.xaml
//文件描述: 维修商项目信息
//创 建 者: xls
//创建日期: 2018/5/24 22:08:12
//版 本 号：1.0.0.0
////////////////////////////////////////////////////////////////////////////////

using System;
using System.Windows;
using System.Windows.Input;
using Com.FirmLib.UI.BllCommon;
using FWindSoft.Wpf;
using FWindSoft.Wpf.Controls;
using FWindSoft.Wpf.Converter;

namespace Com.FirmLib.UI.Maintainer
{
    /// <summary>
    /// WinManitainerProjectInfo.xaml 的交互逻辑
    /// </summary>
    public partial class WinManitainerProjectInfo : NChildWindow
    {
        private VmManitainerProjectInfo m_Vm;
        public WinManitainerProjectInfo():this(new VmManitainerProjectInfo())
        {
        }
        public WinManitainerProjectInfo(VmManitainerProjectInfo vm)
        {
            InitializeComponent();
            //EveryTimeLoad = true;
            this.m_Vm = vm;
            this.m_Vm.SetRefView(this);
            this.DataContext = this.m_Vm;
            this.CommandBindings.Add(new CommandBinding(EditCommands.SingleUpdate, SingleUpdate));
        }
        protected override void LoadData(LoadParameter parameter)
        {
            //初始化列表数据
            TryCatchWrapper.Handled(() => this.m_Vm.Init(parameter));
            //加载项目信息
            this.Title = this.m_Vm.ProjectName;
        }
        #region 界面关联事件
        private void btnOK_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (this.HasError())
                {
                    //MessageShow.Infomation("请修改错误输入项");
                    return;
                }
                //if (Execute())
                //{
                //    MessageShow.Infomation("");
                //    DialogResult = true;
                //}
            }
            catch (Exception ex)
            {
                //MessageShow.Show(ex);
            }
        }

        private void btnCancel_Click(object sender, RoutedEventArgs e)
        {
            Close();
        }
        #endregion
        /// <summary>
        /// 布尔类型转换
        /// </summary>

        public static BoolToStringConverter BoolConverter = new BoolToStringConverter(new System.Collections.Generic.Dictionary<bool, string>() { { true,"有"}, {false, "无"}});

        void SingleUpdate(object sender, ExecutedRoutedEventArgs e)
        {
            TextBoxEditor editor = e.Parameter as TextBoxEditor;
            if (editor == null)
                return;
            #region 验证信息
            var binding = editor.GetBindingExpression(TextBoxEditor.TextProperty);
            if (binding != null)
            {
                binding.UpdateSource();
            }
            if (editor.HasError())
            {
                editor.IsEditing = true;
                return;
            }
            #endregion
            string field = string.Empty;
            if (editor.Tag != null)
            {
                field = editor.Tag.ToString();
            }
            bool result = this.m_Vm.SingleUpdateLinkerItem(field);
            if (!result)
            {
                //editor.Focus();
                editor.IsEditing = true;
            }
        }
    }
}
