private void OnCloseOrder(PositionDetailItem positionItem) { if (_acctVm != null) { if (positionItem.Volume > 0) { SynchronizationContext syncCtx = SynchronizationContext.Current; positionItem.IsClosing = true; _acctVm.ManualCloseOrder(positionItem.Symbol, positionItem.CloseDirection, positionItem.OpenDate, positionItem.Volume, (b, err) => { syncCtx.Send(o => { positionItem.IsClosing = false; if (b) { positionItem.CloseVolume = positionItem.Volume; positionItem.Volume = 0; positionItem.IsOpen = false; PositionDetailItems.Refresh(); } else { System.Windows.MessageBox.Show( System.Windows.Application.Current.MainWindow, err, "平仓时发生错误", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error); } }, null); }); } } }