【问题标题】:How to refresh after changing ValueNumericOptions.Format?更改 ValueNumericOptions.Format 后如何刷新?
【发布时间】:2014-04-28 16:06:02
【问题描述】:

我正在使用 DevExpress xtraChart 来显示一些数据。在CustomDrawSeries 事件中,我正在检查系列名称并更改SeriesTemplate.Label.PointOptions.ValueNumericOptions.Format。它工作......部分。

想法是根据名称将ValueNumericOptions.FormatNumericFormat.FixedPoint 更改为NumericFormat.Percent,反之亦然。问题是更改没有立即显示。为了看到更改,用户必须选择另一个单元格,然后更改立即可见。

如何强制刷新系列并立即查看更改而无需选择另一个单元格?

更新 - 通过代码进行更改后,我检查了Format 并且设置正确。无论如何,这证实了这是一个刷新问题。

【问题讨论】:

  • 图表控件无效时会发生什么?
  • @n4tkd - 我不确定你的意思......
  • 我相信 xtraChart 有 Invalidate 属性,所以如果你这样做。Invalidate 在你改变格式后应该刷新视图。
  • 控件有 Invalidate() 但不能解决问题。
  • 如果您显示一些代码会有所帮助,也许您所说的另一个单元格的意思不是我的想法。

标签: devexpress devexpress-windows-ui


【解决方案1】:

我不知道问题的真正原因是什么,但是您的方法似乎不是很理想。您修改全局设置(模板),而您的目标只是更改某个系列的设置。

您想要实现的目标可以在 ChartControl 初始化期间完成,而无需处理事件。以下代码可用于将百分比格式应用于某个系列:

DevExpress.XtraChartsPointOptions pointOptions = new DevExpress.XtraChartsPointOptions();
pointOptions.ValueNumericOptions.Format = DevExpress.XtraCharts.NumericFormat.Percent;
DevExpress.XtraCharts.SideBySideBarSeriesLabel label = new DeveExpress.XtraCharts.SideBySideBarSeriesLabel();
label.PointOptions = pointOptions;
DevExpressXtraChartsSeries series = xtraChart1.Series["Series Name"];
series.Label = label;
series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;

【讨论】:

    【解决方案2】:

    通过它的声音,您正在注册到视图控制器的 Refresh 事件,这将在刷新时更改图表的格式,同时在 OnViewControlsCreated 事件中分配您的代码以在首次创建时初始化您的代码查看。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-19
      • 2015-03-17
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多