Для изменения размера нажмите или перетащите
Заявки

OrderGrid - таблица для отображения заявок. Кроме того контестное меню этой таблицы содержит команды для операций с заявками: регистрация, замена и отмена заявок. Выбор пункта меню приводит к генерации событий: OrderGridOrderRegistering, OrderGridOrderReRegistering или OrderGridOrderCanceling соответственно.

Примечание Примечание

Сама операция (регистрация, замена, отмена) не выполняется. Соответствующий код нужно прописывать в обработчиках событий самостоятельно.

Основные члены

  • Orders - список заявок.

  • SelectedOrder - выбранная заявка.

  • SelectedOrders - выбранные заявки.

  • AddRegistrationFail(OrderFail) - метод, который добавляет сообщение об ошибке регистрации заявки в поле комментария.

  • OrderRegistering - событие регистрации заявки (возникает после выбора соответствующего пункта контекстного меню).

  • OrderReRegistering - событие замены заявки (возникает после после выбора соответствующего пункта контекстного меню).

  • OrderCanceling - событие отмены заявки (возникает после после выбора соответствующего пункта контекстного меню).

Ниже показаны внеший вид компонета, а также фрагменты кода с его использованием. Пример кода взят из Samples/Quik/Sample.

GUI Order Grid
XAML
<Window x:Class="Sample.OrdersWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:loc="clr-namespace:StockSharp.Localization;assembly=StockSharp.Localization"
    xmlns:xaml="http://schemas.stocksharp.com/xaml"
    Title="{x:Static loc:LocalizedStrings.Orders}" Height="410" Width="930">
  <xaml:OrderGrid x:Name="OrderGrid" x:FieldModifier="public" OrderCanceling="OrderGrid_OnOrderCanceling" OrderReRegistering="OrderGrid_OnOrderReRegistering" />
</Window>
C#
private void ConnectClick(object sender, RoutedEventArgs e)
{
    if (!_isConnected)
    {

        .......................................

        if (Trader == null)
        {
            // создаем подключение
            Trader = isLua
                ? new QuikTrader
                {
                    LuaFixServerAddress = Address.Text.To<EndPoint>(),
                    LuaLogin = Login.Text,
                    LuaPassword = Password.Password.To<SecureString>()
                }
                : new QuikTrader(Path.Text) { IsDde = true };

            .......................................            

            // Добавляем заявки в таблицу OrderGrid
            Trader.NewOrders += orders => _ordersWindow.OrderGrid.Orders.AddRange(orders);

            // Добавляем стоп-заявки в таблицу OrderGrid
            Trader.NewStopOrders += orders => _stopOrderWindow.OrderGrid.Orders.AddRange(orders);

            .......................................            

            ShowSecurities.IsEnabled = ShowTrades.IsEnabled =
                ShowMyTrades.IsEnabled = ShowOrders.IsEnabled =
                    ShowPortfolios.IsEnabled = ShowStopOrders.IsEnabled = true;
        }

        Trader.Connect();

        _isConnected = true;
        ConnectBtn.Content = LocalizedStrings.Disconnect;
    }
    else
    {
        Trader.Disconnect();

        _isConnected = false;
        ConnectBtn.Content = LocalizedStrings.Connect;
    }
}

// Удаляет все выбранные заявки
private void OrderGrid_OnOrderCanceling(IEnumerable<Order> orders)
{
    orders.ForEach(MainWindow.Instance.Trader.CancelOrder);
}

// Открывает окно редактирования заявки и выполняет замену выбранной заявки
private void OrderGrid_OnOrderReRegistering(Order order)
{
    var window = new OrderWindow
    {
        Title = LocalizedStrings.Str2976Params.Put(order.TransactionId),
        Connector = MainWindow.Instance.Trader,
        Order = order.ReRegisterClone(newVolume: order.Balance),
    };

    if (window.ShowModal(this))
    {
        MainWindow.Instance.Trader.ReRegisterOrder(order, window.Order);
    }
}