UsilaDobry
|
Дата: 19.04.2013
Каким образом можно внедрить монитор логирования в форму Wpf, чтобы он открывался не отдельным окном, а в приложении?
|
|
|
|
Спасибо:
|
|
|
|
|
|
IvanB
|
Дата: 19.04.2013
UsilaDobry:
Каким образом можно внедрить монитор логирования в форму Wpf, чтобы он открывался не отдельным окном, а в приложении?
xmlns:SX="clr-namespace:StockSharp.Xaml;assembly=StockSharp.Xaml"
....
<SX:Monitor Name="MonitorControl" Margin="5,5,5,5" />
|
|
|
|
|
|
|
UsilaDobry
|
Дата: 20.04.2013
|
|
|
|
|
При формировании свечек, хочу сделать генерацию коллекции таймфреймов и внесение этой коллекции в комбобокс.
А затем передавать выбранное значение таймфрейма из комбобокса для создания серии свечек.
Пишу код в конструктор MainWindow()
var candleManger = new CandleManager(InterfaceConnection.SafeConnection.Trader);
TimeFrameComboBox.ItemsSource = candleManger.GetSupportedRanges(null); //здесь в качестве аргумента надо указать серию свечек, я ставлю по совету решайпера null, но это не правильно, при запуске выпадает Exception, аргумент вызываемого метода не может быть null.
В обработчик события по нажатию кнопки пишу
var candleManger = new CandleManager(InterfaceConnection.SafeConnection.Trader);
var candleSeries = new CandleSeries(typeof (TimeFrameCandle), InterfaceConnection.SelectedSecurity,TimeFrameComboBox.SelectedValue);
if (BeginDatePicker != null && EndDatePicker != null)
{
if (BeginDatePicker.SelectedDate != null) candleSeries.From = (DateTime) BeginDatePicker.SelectedDate;
if (EndDatePicker.SelectedDate != null) candleSeries.To = (DateTime) EndDatePicker.SelectedDate;
}
Приложение вообще не запускается.
|
|
|
|
Спасибо:
|
|
|
|
|
|
IvanB
|
Дата: 20.04.2013
UsilaDobry:
...
Пишу код в конструктор MainWindow()
var candleManger = new CandleManager(InterfaceConnection.SafeConnection.Trader);
TimeFrameComboBox.ItemsSource = candleManger.GetSupportedRanges(null); //здесь в качестве аргумента надо указать серию свечек, я ставлю по совету решайпера null, но это не правильно, при запуске выпадает Exception, аргумент вызываемого метода не может быть null.
...
Правильно пишите, это не верно:
TimeFrameComboBox.ItemsSource = candleManger.GetSupportedRanges(null);
в аргумент нужно указывать серию свечей, для которой хотите получить данные.
|
|
|
|
Спасибо:
|
|
|
|
|
|
UsilaDobry
|
Дата: 20.04.2013
Как вариант создал обработчик события
private void TimeFrameComboBox_ContextMenuOpening(object sender, System.Windows.Controls.ContextMenuEventArgs e)
{
var candleManger = new CandleManager(InterfaceConnection.SafeConnection.Trader);
TimeFrameComboBox.ItemsSource = candleManger.GetSupportedRanges(candleSeries);
}
Все равно программа просит конкретное значение candleSeries, в таком виде воспринимает как null.
|
|
|
|
Спасибо:
|
|
|
|
|
|
IvanB
|
Дата: 20.04.2013
UsilaDobry:
Как вариант создал обработчик события
private void TimeFrameComboBox_ContextMenuOpening(object sender, System.Windows.Controls.ContextMenuEventArgs e)
{
var candleManger = new CandleManager(InterfaceConnection.SafeConnection.Trader);
TimeFrameComboBox.ItemsSource = candleManger.GetSupportedRanges(candleSeries);
}
Все равно программа просит конкретное значение candleSeries, в таком виде воспринимает как null.
На сколько я теперь понимаю, Вы не правильно пытаетесь использовать метод GetSupportedRanges. Вы пытаетесь получить из него коллекцию таймфреймов свечей, но этот метод возвращает не это, он возвращает "временные диапазоны, для которых у данного источниках для передаваемой серии свечек есть данные.". Подробнее здесь
|
|
|
|
Спасибо:
|
|
|
|
|
|
UsilaDobry
|
Дата: 20.04.2013
Тогда как можно получить значения таймфреймов, которые есть в Quik?
|
|
|
|
Спасибо:
|
|
|
|
|
|
IvanB
|
Дата: 20.04.2013
UsilaDobry:
Тогда как можно получить значения таймфреймов, которые есть в Quik?
Я думаю, что из Квика никак не извлечь значения таймфреймов, которые используются в его выпадающем списке.
Обычно, если надо выбирать значение таймфрейма из списка, то используют специальный компонент (Xceed:TimePicker) или в ручную, в цикле заполняют стандартный компонент выпадающего списка.
|
|
|
|
Спасибо:
|
|
|
|
|
|
UsilaDobry
|
Дата: 20.04.2013
Я в ручную занес значения через ComboBoxItem, потом вызываю значение в следующем коде
var candleSeries = new CandleSeries(typeof (TimeFrameCandle), InterfaceConnection.SelectedSecurity, TimeSpan.FromMinutes((double) TimeFrameComboBox.SelectedItem));
Выдает exception - Заданное приведение является недопустимым. Где-то явное приведение типов не сделал?
|
|
|
|
Спасибо:
|
|
|
|
|
|
IvanB
|
Дата: 21.04.2013
UsilaDobry:
Я в ручную занес значения через ComboBoxItem, потом вызываю значение в следующем коде
var candleSeries = new CandleSeries(typeof (TimeFrameCandle), InterfaceConnection.SelectedSecurity, TimeSpan.FromMinutes((double) TimeFrameComboBox.SelectedItem));
> Выдает exception - Заданное приведение является недопустимым. Где-то явное приведение типов не сделал?
Всего скорее Вы поместили в TimeFrameComboBox значения не типа double.
|
|
|
|
Спасибо:
|
|
|
|
|