图表 - 通过复选框禁用系列

Chart - Disable Series by Checkbox

我正在尝试启用和禁用带有复选框的图表上的线点。 但是,当我单击复选框时,设置为 DateTime 的 x 轴正在改变!这很烦人。下面是之前和之后的图片示例。

这是选中复选框后的图像。 我想尝试阻止这种情况发生,并为每个系列添加复选框,以便我可以启用和禁用这些行。然后用户一次只能查看一个。

代码如下:

private void radCheckBox1_ToggleStateChanged(object sender, Telerik.WinControls.UI.StateChangedEventArgs args)
    {
        if (radCheckBox1.Checked == false)
        {
            chart1.Series["Series1"].Points.Clear();
        }
        else
        {
            for (int x = 0; x < HRM.Active.DataRows.Count; x++)
            {
                chart1.Series["Series1"].Points.AddXY(x, 
                       HRM.Active.DataRows.ElementAt(x).Speed);
            }
        }
    }

让 Series 消失并再次出现的最简单方法如下:

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    Series sz = chart1.Series["Zeroes"];
    sz.Enabled = checkBox1.Checked;
}

关于您发布的代码和图片的更多说明:

chart1.Series["Series1"].Points.AddXY(x, HRM.Active.DataRows.ElementAt(x).Speed);

不保证将 X 值添加为可能的日期。相反,您可能需要使用此转换:

chart1.Series["Series1"].Points.AddXY(x.ToOADate(),
                                      HRM.Active.DataRows.ElementAt(x).Speed);

但我对您的实际数据一无所知,对此我无法确定。但请记住:Chart 中的 DateTimes 不是很直观,因为这些值在内部总是映射到 double

但是使用 Enabled 属性 你不需要所有混乱的清理和重新添加任何 DataPoints 无论如何!