Выбор инструмента
Компонент SecurityPicker предназначен для поиска и выбора инструментов. Поддерживается как одиночный, так и множественный выбор. Компонент позволяет фильтровать список инструментов по их типу. Также этот компонент может использоваться для отображения финансовой информации (полей level1), как показано в разделе SecurityGrid.
SecurityPicker состоит из:
- Текстового поля, для ввода кода (или Id) инструмента. При вводе выполняется фильтрация списка по введенной подстроке.
- Специального комбинированного списка SecurityTypeComboBox для фильтрации инструментов по их типу.
- Таблицы SecurityGrid для отображения списка инструментов.
Основные свойства
- SecurityPicker.SelectionMode - режим выбора инструмента: одиночный, множественный.
- SecurityPicker.ShowCommonStatColumns - отображать основные колонки.
- SecurityPicker.ShowCommonOptionColumns - отображать основные колонки для опционов.
- SecurityPicker.Title - заголовок, который отображается в верхней части компонента.
- SecurityPicker.Securities - список инструментов.
- SecurityPicker.SelectedSecurity - выбранный инструмент.
- SecurityPicker.SelectedSecurities - список выбранных инструментов.
- SecurityPicker.FilteredSecurities - список отфильтрованных инструментов.
- SecurityPicker.ExcludeSecurities - список скрытых в списке инструментов.
- SecurityPicker.SelectedType - выбранный тип инструмента.
- SecurityPicker.SecurityProvider - провайдер информации об инструментах.
- SecurityPicker.MarketDataProvider - провайдер рыночных данных.
Ниже показан фрагмент кода с его использованием, взятый из примера Samples/Common/SampleConnection:
<Window x:Class="Sample.SecuritiesWindow"
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.Securities}" Height="415" Width="1081">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<xaml:SecurityPicker x:Name="SecurityPicker" x:FieldModifier="public" SecuritySelected="SecurityPicker_OnSecuritySelected" ShowCommonStatColumns="True" />
</Grid>
</Window>
private void ConnectClick(object sender, RoutedEventArgs e)
{
......................................
_connector.NewSecurity += security => _securitiesWindow.SecurityPicker.Securities.Add(security);
// устанавливаем поставщик маркет-данных
_securitiesWindow.SecurityPicker.MarketDataProvider = _connector;
......................................
}
private void SecurityPicker_OnSecuritySelected(Security security)
{
NewStopOrder.IsEnabled = NewOrder.IsEnabled =
Level1.IsEnabled = Depth.IsEnabled = security != null;
}