c# - 数据集中的多个系列
问题描述
我有一个相对简单的问题,我想在一个包含 2 个表的数据集中的图表中显示 2 个简单的线系列。
现在我只是创建了具有相同 ValueMembers 的第二个系列,但它们彼此重叠显示。DataSet 用不同的值正确填充。
dataAdapter.Fill(dataSetChart);
chartKunden.Series.Add("Kunden");
chartKunden.Series.Add("Table1");
chartKunden.Series["Kunden"].ChartType = SeriesChartType.Line;
chartKunden.Series["Table1"].ChartType = SeriesChartType.Column;
chartKunden.Series["Table1"].XValueMember = "Woche";
chartKunden.Series["Table1"].YValueMembers = "Stunden";
chartKunden.Series["Kunden"].XValueMember = "Woche";
chartKunden.Series["Kunden"].YValueMembers = "Stunden";
chartKunden.DataSource = dataSetChart;
我基本上只是想知道如何将它们分开,以便第二个系列从 DataSet 的第二个表中获取数据。
更新数据绑定:
chartKunden.Series["Table2"].Points.DataBind(dataSetChart.Tables[1].Rows, "Woche", "Stunden", "");
chartKunden.Series["Table1"].Points.DataBind(dataSetChart.Tables[0].Rows, "Woche", "Stunden", "");
解决方案
有很多方法可以进行数据绑定。
您可以将每个系列绑定到单独的数据源,例如:
s1.XValueMember = "col11";
s1.YValueMembers = "col12";
s2.XValueMember = "col21";
s2.YValueMembers = "col22";
s1.Points.DataBind(t1.Rows, "col11", "col12", "");
s2.Points.DataBind(t2.Rows, "col21", "col22", "");
这假设有两个 DataTablest1
和t2
Columns "col11"
,"col12"
和"col21"
, "col22"
。
注意空字符串作为最后一个参数。在这里可以添加以逗号分隔的自定义属性列表以添加到绑定中。例子:
s1.Points.DataBind(t1.Rows, "col11", "col12", "Tooltip=colcom1");
有关此限制的讨论,请参见此处!
另请注意,此绑定重载需要在同一数据源中查找 x 值和 y 值。查看上面的绑定概述以获得更灵活的方式!
将 x 和 y 值绑定到不同源的简单示例可以写成:
s2.Points.DataBindXY(t2.Rows, "col21", t1.Rows, "col12");
请注意,现在我们不能设置扩展属性!
推荐阅读
- google-apps-script - Google 表格:缓存 IMPORTXML 数据
- javascript - 无法读取未定义的属性“viewManagersNames”
- python - 如何允许 ws:// 而不是 localhost:// 龙卷风
- java - 将 EventHandler 添加到标签中包含的 ImageView
- python - 更新公司时,参数“输入”的值 id 无效
- python - Django 装饰器@permission_required
- c# - 如何计算两个日期之间的假期C#
- emacs - 删除文本属性似乎不会影响“显示”文本属性
- c - 从 POSIX 函数返回指针的一般内存所有权规则是什么?
- javascript - 在点击事件上更改 translateX 属性