背景:
开发一个交易系统,该系统订阅许多由 Interactive Brokers API 发送的事件。一个有趣的事件是关于我的交易账户值(value),它在交易时间内波动,所以我希望立即看到带有 accountvalueupdate 事件的信息。我在 Visual Studio 2010 中基于 ActiveX api 和 c# 开发了这个。
我想检查此信息的演示文稿是使用由 (http://www.devexpress.com/Products/NET/Controls/WinForms/Gauges/) 开发的仪表。这个仪表看起来很花哨,但原理应该与我们在 Visual Studio 中使用的普通仪表类似。似乎我只能通过数据绑定(bind)更新仪表的值,因为我试图将更新的帐户值分配给 this.myGauge.value 但失败了。
我在 MySql 和 VS2010 之间建立了 MySql 连接。我在 MySQL 中只创建一个表,称为帐户。为了简单起见,我只有两列(accountID 和 accountValue)和一行|(这意味着当事件带有新的 accountValue 时,我只是覆盖上一个 session 的 accountValue 的值然后行数总是一个。非常简单想法......)。在那个 Gauge proporties 中,我找到了 databinng 选项,我通过使用高级选项来设置导航抛出可用表并将其绑定(bind)到唯一有用的列 accountValue。
问题:
- 我将 accountValue 的默认值设置为 500 作为测试的默认值。我构建我的软件。仪表正确显示 500。
- 当然,我的真实账户值(value)不是 500,所以现在我单击一个按钮连接到 API 并开始监听事件。几秒钟后,自从我在控制台上打开管理 mysql 表并使用 select * from account 持续观察更新后,事件就到了。我注意到 accountValue 列(TABLE WORKS RIGHT AND WE ONLY HAVE ONE ROW, OEVERWRITTING MODE)的值变为正确的值,例如 35000。
然而,仪表根本没有改变...!!现在,如果我关闭我的软件并再次构建,仪表显示正确的值 35000。现在我关闭了 api,没有即将发生的事件,只使用 mysql 的命令行再次将 accountValue 的值更改为 500。仪表中也没有更新.
看起来仪表只在构建 session 期间或启动时读取表的值,从不监听绑定(bind)数据库的更新。
顺便说一句,我尝试将出价数据模式设置为“onValidation”或“onPropertieschanged”,但它并没有解决,尽管“onPropertieschanged”看起来是正确的....
最佳答案
I tried to assign updated account value to this.myGauge.value...
很遗憾,您提供的信息无法明确诊断此问题。在 WinForms GaugeControl 和 CircularGauge 中(在 Linear/Digital/StateIndicator gauge 中)都没有 Value 属性,但只有在 ASPxGaugeControl ( ASPxGaugeControl.Value ) 中。因此,请提供不适合您的完整示例代码。
所有这些属性都可以在代码中手动更改或使用标准 .NET 数据绑定(bind)机制将数据绑定(bind)到数据源:
- ArcScaleComponent.DataBindings 属性允许您进行数据绑定(bind) 到圆形仪表刻度的当前值 ( ArcScale.Value )。
- LinearScaleComponent.DataBindings 属性允许您 数据绑定(bind)到线性仪表刻度的当前值 (LinearScale.Value)。
- DigitalGauge.DataBindings 属性允许您将数据绑定(bind)到 数字仪表显示的文本。
- StateIndicatorComponent.DataBindings 属性允许您 数据绑定(bind)到状态指示器的状态。
请查看以下文章以获取更多详细信息:Data Binding .
数据绑定(bind)功能在 Gauge 的主演示项目(DataBinding 模块)中进行了演示:
this.arcScaleComponent2.DataBindings.Add(
new System.Windows.Forms.Binding("Value", this.productsBindingSource,
"UnitsOnOrder", true, System.Windows.Forms.DataSourceUpdateMode.Never));
附言请使用DevExpress Support Center提出问题或报告问题,因为当您使用社区、新闻组或其他通信 channel 时,无法保证 DX 参与。
关于mysql - 关于更新 MySQL 数据库和我的 devexpress Gauge 值之间的数据问题的数据绑定(bind)问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8376973/