本帖最后由 pinebud 于 2018-6-1 11:00 编辑
关于RangeSelector的初始化问题已经在帖子FlexChart 设定range selector 报错:System.OverflowException中提到原因。
当RangeSelector绑定的chart重新加载数据的时候,RangeSelector不能自动调整lowervalue和uppervalue到新的图表。
经过探索发现,使用以下代码:
- XRangeSelector.Dispose(); //去除旧的rangeselector在UI上的显示,否则新的rangeselector不会显示出来
- XRangeSelector = null; //设置rangeselector为null,这样renderd函数会重新生成新的
复制代码
注意,必须在renderd函数中初始化rangeselector!!!- private void RangeSelectChart_Rendered(object sender, RenderEventArgs e)
- {
- if (XRangeSelector == null && RangeSelectChart.AxisX.ActualMin != RangeSelectChart.AxisX.ActualMax)
- {
- XRangeSelector = new RangeSelector(RangeSelectChart);
- XRangeSelector.ValueChanged += XRangeSelector_ValueChanged;
- }
- }
复制代码
当调用dispose和设置XRangeSelector = null 之后,当rendered函数发生时,会再次生成新的rangeselector,是正常绑定新chart的。
希望对之后使用flexchart的人有帮助!有问题可以在楼下回复~~
|
|