Пример #1
0
            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);
                        });
                    }
                }
            }