Проблема с привязкой данных об обновлении данных между базой данных MySQL и моим значением devexpress Gauge? - PullRequest
1 голос
/ 04 декабря 2011

Справочная информация:

  1. Разработка торговой системы, которая подписывается на многие события, которые отправляются через API Interactive Brokers. Одно интересное событие касается стоимости моего торгового счета, которая колеблется в течение торгового часа, поэтому я предпочел бы немедленно просмотреть информацию о событии accountvalueupdate. Я разрабатываю этот на основе ActiveX API и C # в Visual Studio 2010.

  2. презентация, которую я хочу проверить, состоит в том, чтобы использовать датчик, разработанный (http://www.devexpress.com/Products/NET/Controls/WinForms/Gauges/). Этот датчик выглядит причудливо, но принцип должен быть аналогичен нормальному датчику, который мы используем в Visual Studio. Кажется, что я мог только обновить значение датчика с помощью привязки данных, поскольку я попытался присвоить обновленное значение учетной записи this.myGauge.value и не смог.

  3. Я создаю соединение MySql между MySql и VS2010. Я создаю только одну таблицу в MySQL, которая называется учетной записью. Для простоты у меня есть только два столбца (accountID и accountValue) и одна строка | (что означает, что когда событие приходит с новым accountValue, я просто перезаписываю значение accountValue последнего сеанса, тогда число строк всегда равно единице. Действительно просто идея .....). В этой пропорции Gauge я нашел опцию databinng и настроил ее, используя расширенную опцию для навигации по доступной таблице и привязки ее к единственному полезному столбцу accountValue.

Проблема:

  1. Я установил значение по умолчанию accountValue как 500 по умолчанию для теста. Я создаю свое программное обеспечение. Датчик показывает 500 правильно.
  2. Конечно, моя реальная стоимость счета не 500, поэтому теперь я нажимаю одну кнопку, чтобы подключиться к API и начать прослушивание события. Через несколько секунд происходит событие, поскольку я открыл консоль для управления таблицей mysql и использовал select * from account для постоянного наблюдения за обновлением. Я заметил, что значение столбца accountValue (ТАБЛИЦА РАБОТАЕТ ПРАВИЛЬНО, И У нас ЕСТЬ ТОЛЬКО ОДНА СТРОКА, РЕЖИМ ПЕРЕЗАПИСИ) становится правильным, например, 35000.

ОДНАКО, ДАТЧИК НЕ ИЗМЕНИТСЯ ВСЕ ... !! Теперь, если я закрыл свое программное обеспечение и собрал снова, датчик показывает правильное значение 35000. Теперь я закрыл API и нет предстоящих событий и использую только командную строку mysql, чтобы снова изменить значение accountValue на 500. НЕТ ОБНОВЛЕНИЯ в датчике также .

Похоже, что датчик считывает значение таблицы только во время сеанса сборки или при запуске и никогда не слушает обновления баз данных связывания.

Кстати, я попытался установить режим данных привязки либо на «onValidation», либо на «onPropertieschanged», но это не помогло, хотя «onPropertieschanged» выглядит правильным ....

1 Ответ

1 голос
/ 05 декабря 2011

Я попытался присвоить обновленное значение учетной записи this.myGauge.value ...

К сожалению, предоставленная вами информация не позволяет четко диагностировать эту проблему.Свойство Value отсутствует ни в WinForms GaugeControl, ни в CircularGauge (как в индикаторе Linear / Digital / StateIndicator), а только в ASPxGaugeControl ( ASPxGaugeControl.Value ).Итак, предоставьте полный пример кода, который не работает на вашей стороне.

Все эти свойства можно изменить вручную в коде или привязать данные к источникам данных с помощью стандартного механизма привязки данных .NET:

  • Свойство ArcScaleComponent.DataBindings позволяет привязывать данные к текущему значению шкалы кругового датчика ( ArcScale.Value ).
  • Свойство LinearScaleComponent.DataBindings позволяетпривязка данных к текущему значению линейной шкалы ( LinearScale.Value ).
  • Свойство DigitalGauge.DataBindings позволяет привязывать данные к тексту, отображаемому цифровымgauge.
  • Свойство StateIndicatorComponent.DataBindings позволяет привязывать данные к состоянию индикатора состояния.

Пожалуйста, просмотрите следующие статьи для получения более подробной информации: Привязка данных .
Функция привязки данных продемонстрирована в основном демонстрационном проекте Gauge (модуль DataBinding):

this.arcScaleComponent2.DataBindings.Add(
    new System.Windows.Forms.Binding("Value", this.productsBindingSource,
    "UnitsOnOrder", true, System.Windows.Forms.DataSourceUpdateMode.Never));

PS Пожалуйста, используйте Центр поддержки DevExpress , чтобы задавать вопросы или сообщать о проблемах, потому что нет никакой гарантии участия DX, когда вы используете сообщества, группы новостей или другие каналы связи.

...