public ComboBoxMediator(ControlParameter parameter)
 {
     this._cbDepositType = parameter.DepositWithDrawTranferType;
     this._cbFundSelectType = parameter.DepositCodeSelectType;
     this._gbFundSelectByItemPanel = parameter.DepositCodeSelectByItemPanel;
     this._spFundSelectByRangePanel = parameter.DepositCodeSelectByRangePanel;
     this._gridFundByItem = parameter.DepositCodeSelectByItem;
     this._spFundByRange = parameter.DepositCodeSelectByRange;
     this._btnQueryFund = parameter.QueryFundBtn;
     this._cbDepositType.SelectionChanged += cbDepositType_SelectionChanged;
     this._cbFundSelectType.SelectionChanged += cbFundSelectType_SelectionChanged;
 }
        public MainWindow()
        {
            InitializeComponent();
            this._Meditor = new MainWindowAndPopupMediator(this, this.PopupLogin, this.popupProgressMessage, this.tbLoginName.Name);
            ControlParameter parameter = new ControlParameter();
            parameter.DepositWithDrawTranferType=this.cbDepositType;
            parameter.DepositCodeSelectType = this.cbSelectFundType;
            parameter.DepositCodeSelectByItemPanel=this.gbFund;
            parameter.DepositCodeSelectByRangePanel = this.spFund;
            parameter.DepositCodeSelectByItem = this.gridFund;
            parameter.DepositCodeSelectByRange = this.spFundByRange;
            parameter.QueryFundBtn = this.QueryFundBtn;
            this._ComboMediator = new ComboBoxMediator(parameter);
            Common.SynchronizationContext = SynchronizationContext.Current;
            Common.MainWindow = this;
            this.DataContext = new MainViewModel();

            Messenger.Default.Register<LoginSuccessMsg>(this, m =>
            {
                if (Common.SynchronizationContext == null) return;
                Common.SynchronizationContext.Post(ar =>
                {
                    PopupLogin.IsOpen = (m.LoginProgress == LoginProgressEnum.ProgressCloseLoginOpen || m.LoginProgress == LoginProgressEnum.LoginOpen) ? true : false;
                    popupProgressMessage.IsOpen = (m.LoginProgress == LoginProgressEnum.LoginCloseProgressOpen || m.LoginProgress == LoginProgressEnum.ProgressOpen) ? true : false;
                }, null);

            });


            Messenger.Default.Register<LoadingMsg>(this, m =>
            {
                StartStopWait();
            });

            Messenger.Default.Register<ShowProgressMsg>(this, m =>
            {
                if (m.IsShow)
                {
                    popupProgressMessage.IsOpen = true;
                    gridMain.IsEnabled = false;
                }
                else
                {
                    popupProgressMessage.IsOpen = false;
                    gridMain.IsEnabled = true;
                    Messenger.Default.Send(new ProgressMessage(string.Empty, 0));
                }
            });

            Messenger.Default.Register<CloseProgressMsg>(this, m =>
            {
                Common.SynchronizationContext.Post(ar => popupProgressMessage.IsOpen = false, null);
            });

            Messenger.Default.Register<ApplicationCloseMsg>(this, m =>
            {
                this.Close();
            });

            Messenger.Default.Register<HideUserManageComponentMsg>(this, m =>
            {
                if (m.IsAdmin) gbUser.Visibility = Visibility.Visible;
                else gbUser.Visibility = Visibility.Collapsed;
            });


            Messenger.Default.Register<UpdateWarnInfoMsg>(this, m =>
            {
                statusTxt.Text = m.Info;
            });


            Messenger.Default.Register<BeginFetchUserInputFundNoRangeMsg>(this, m =>
            {
                string fromNo = this.cbFundFrom.Text;
                string toNo = this.cbFundTo.Text;
                UserInputFundNoRangeMsg msg = new UserInputFundNoRangeMsg(fromNo, toNo);
                Messenger.Default.Send(msg);
            });

            Messenger.Default.Register<UncheckedFundCheckAllButton>(this, m =>
            {
                this.cbFundAll.IsChecked = false;
            });


        }