
///////////////////////////////////////////////////////////////////////////////  
//文件名称: WinMaintainerProjectAsset.xaml
//文件描述: 维修商项目资产
//创 建 者: xls
//创建日期: 2018/5/24 22:10:36
//版 本 号：1.0.0.0
////////////////////////////////////////////////////////////////////////////////

using System;
using System.Windows;
using System.Windows.Controls;
using FWindSoft.Wpf;
using FWindSoft.Wpf.Controls;

namespace Com.FirmLib.UI.Maintainer
{
    /// <summary>
    /// WinMaintainerProjectAsset.xaml 的交互逻辑
    /// </summary>
    public partial class WinMaintainerProjectAsset : NChildWindow
    {
        private VmMaintainerProjectAsset m_Vm;
        public WinMaintainerProjectAsset():this(new VmMaintainerProjectAsset())
        {
          
        }
        public WinMaintainerProjectAsset(VmMaintainerProjectAsset vm)
        {
            InitializeComponent();
            EveryTimeLoad = true;
            this.m_Vm = vm;
            this.m_Vm.SetRefView(this);
            this.DataContext = this.m_Vm;
            this.m_Vm.WatchValidateResult(() => !this.HasError());
        }
        protected override void LoadData(LoadParameter parameter)
        {
            //初始化列表数据
            TryCatchWrapper.Handled(() => this.m_Vm.Init(parameter));
            //加载项目信息
        }
        #region 界面关联事件
        private void btnOK_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                try
                {
                    this.m_Vm.BeginInEdit();
                    var textBoxes = this.GetSpecifyTypeChildren<TextBox>();
                    foreach (var textBox in textBoxes)
                    {
                        var binding = textBox.GetBindingExpression(TextBox.TextProperty);
                        if (binding != null)
                        {
                            binding.UpdateSource();
                        }
                    }
                }            
                finally
                {

                    this.m_Vm.EndInEdit();
                }
                if (this.HasError())
                {
                    //MessageShow.Infomation("请修改错误输入项");
                    return;
                }
            }
            catch (Exception ex)
            {
                //MessageShow.Show(ex);
            }
        }

        private void btnCancel_Click(object sender, RoutedEventArgs e)
        {
            Close();
        }
        #endregion
    }
}
