private static void OnEnableStopProfitChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { PendingOrderWindow win = d as PendingOrderWindow; if ((bool)e.NewValue) { ProductInformation p = win.CbProductName.SelectedItem as ProductInformation; if (p != null) { win.StopProfit = p.OrderPrice; } } else { win.StopProfit = 0.00; } }
/// <summary> /// 为指定的客户限价挂单 /// </summary> /// <param name="clientAccount">指定的某个客户账户</param> public void PendingOrder(ClientAccount clientAccount) { PendingOrderWindow wnd = new PendingOrderWindow { Owner = Application.Current.MainWindow, DataContext = clientAccount, ProductList = ProductInfoes, }; wnd.PendingOrder += (sender, args) => { BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += (s, e) => { ValidationResult result = PendingOrderInfoValidation(args.NewOrderInfo, args.SelectedProduct, clientAccount); if (!result.IsValid) { e.Result = new ErrType(ERR.VALIDATE_FAIL, result.ErrorContent.ToString()); return; } int userType = ToUserType(_accType); e.Result = _tradeService.PendingOrder(_loginID, clientAccount.AccInfo.AccountName, userType, args.NewOrderInfo); }; worker.RunWorkerCompleted += (s, e) => { ErrType err = e.Result as ErrType; if (err != GeneralErr.Success) { MessageBox.Show(err.ErrMsg, err.ErrTitle, MessageBoxButton.OK, MessageBoxImage.Warning); wnd.RevertWindowState(); } else { wnd.Close(); MessageBox.Show("限价挂单操作成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information); } }; worker.RunWorkerAsync(); }; wnd.ShowDialog(); }