gpt4 book ai didi

c# - 将多个列表绑定(bind)到多个图表系列的最佳方式

转载 作者:太空宇宙 更新时间:2023-11-03 15:06:11 24 4
gpt4 key购买 nike

我有几个包含 BindingList 的类实例。该列表会定期更新。

public class myclass
{
public BindingList<double> values;
public string name;
//....code

public void UpdateVaues()
{
//Get somevalue
values.Add(somevalue);
}
}

理想情况下,我想将这些列表中的几个放入 DataTable 之类的东西中,然后执行以下操作:

chart1.DataSource = datatable;

然后:

chart1.DataBind();

并更新所有内容。

目前我只是不断地一次重新绑定(bind)每个列表:

//Inside main form
chart1.Series["one"].Points.DataBindY(myclass1.values);
chart1.Series["two"].Points.DataBindY(myclass2.values);
//...

我不敢相信这是最好的方法。有什么想法吗?

最佳答案

如果您正在寻找具有多个绑定(bind)的一个源,则可以将 DataSet 与 DataTable 和 ObservableCollection 结合使用。

public class myclass
{
public DataSet dataSet = new DataSet();
public DataTable dt1;
public DataTable dt2;

public ObservableCollection<double> values1;
public ObservableCollection<double> values2;

public myclass() {
values1.CollectionChanged += values1Changed;
}

public void CreateTables()
{
// Create the DataSet

// Create the Data Tables
dt1 = new DataTable();
dt2 = new DataTable();

dataSet.Tables.Add(dt1);
dataSet.Tables.Add(dt1);

chart1.DataSource = dataSet;
}

private void values1Changed(object sender, NotifyCollectionChangedEventArgs args)
{
//Get somevalue (what changed)
dt1.Rows.Add(somevalue);

chart1.DataBind();
}
}

编辑:另一种可能的解决方案基于 BindingSource 和多个 BindingList

    public BindingSource bindingSource { get; set; } = new BindingSource();
public BindingList<BindingList<double>> bindingList { get; set; } = new BindingList<BindingList<double>>();
public BindingList<double> values1 { get; set; } = new BindingList<double>();
public BindingList<double> values2 { get; set; } = new BindingList<double>();

public Form1()
{
InitializeComponent();

bindingList.Add(values1);
bindingList.Add(values2);

bindingSource.DataSource = bindingList;

chart1.DataSource = bindingSource;
}

免责声明:我尚未对此进行全面测试,但您可以查看它是否有效。您还需要在图表上设置数据成员。

关于c# - 将多个列表绑定(bind)到多个图表系列的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43455173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com