Table of Contents

Заявки

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

GUI OrderGrid

Tip

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

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

Ниже показаны фрагменты кода с его использованием. Пример кода взят из Samples/Common/SampleConnection.

<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>
	  				
private readonly Connector _connector = new Connector();
private void ConnectClick(object sender, RoutedEventArgs e)
{
 	.......................................	
	// Добавляем заявки в таблицу OrderGrid
	_connector.NewOrder += order => _ordersWindow.OrderGrid.Orders.Add(order);
	
	// Добавляем стоп-заявки в таблицу OrderGrid
	_connector.NewStopOrder += order => _stopOrdersWindow.OrderGrid.Orders.Add(order);
	.......................................			
}
              	
// Удаляет все выбранные заявки
private void OrderGrid_OnOrderCanceling(IEnumerable<Order> orders)
{
	orders.ForEach(_connector.CancelOrder);
}
// Открывает окно редактирования заявки и выполняет замену выбранной заявки
private void OrderGrid_OnOrderReRegistering(Order order)
{
	var window = new OrderWindow
	{
		Title = LocalizedStrings.Str2976Params.Put(order.TransactionId),
		SecurityProvider = _connector,
		MarketDataProvider = _connector,
		Portfolios = new PortfolioDataSource(_connector),
		Order = order.ReRegisterClone(newVolume: order.Balance)
	};
	if (window.ShowModal(this))
		_connector.ReRegisterOrder(order, window.Order);
}