Series.Points 手動添加Points.AddXY、AddY 等)DataBind()(最常用)本文聚焦途徑 3 與 4。
double t;
for (t = 0; t <= (2.5 * Math.PI); t += Math.PI / 6)
{
double ch1 = Math.Sin(t);
double ch2 = Math.Sin(t - Math.PI / 2);
Chart1.Series["Channel 1"].Points.AddXY(t, ch1);
Chart1.Series["Channel 2"].Points.AddXY(t, ch2);
}
實作 IEnumerable 的類型皆可綁定:DataView、DataReader、DataSet、Array、List、SqlCommand 等。

流程:判斷是否有分組資料 → 是則呼叫交叉表綁定 → 否則判斷 X/Y 軸綁定 → 呼叫 Points.DataBind / DataBindX / DataBindY → 最後處理多 Y 值綁定。
資料表範例:ID, Name, RegionID, Sales
chart1.DataSource = myDv;
chart1.Series["Series1"].XValueMember = "Name";
chart1.Series["Series1"].YValueMembers = "Sales";
chart1.DataBind();
Chart1.Series["Series1"].Points.DataBindXY(myReader, "Name", myReader, "Sales");
Chart1.Series["Series1"].Points.DataBind(myReader, "Name", "Sales", "");
Label/Tooltip 綁定差異:
Series["S1"].Label = "#VAL"; 再呼叫 DataBind/DataBindXYDataBind(..., "Label=ID,ToolTip=RegionID") 以格式化字串指定
DataBindCrossTable 可依資料動態生成多條 Series。
範例資料:Name, Year, Sales, Commissions
方法簽章:
DataBindCrossTable(IEnumerable dataSource,
string seriesGroupByField, // 分組欄位(如 Name)
string xField, // X 軸欄位(如 Year)
string yFields, // Y 軸欄位,多欄位用逗號分隔
string otherFields, // Label/Tooltip/Url 等屬性
PointSortOrder sortingOrder // 可選,排序方式
)
Chart1.DataBindCrossTable(myReader, "Name", "Year", "Sales", "Label=Commissions{C}");

Chart1.DataBindCrossTable(myReader, "Year", "Name", "Sales", "Label=Commissions{C}");
只需交換前兩參數即可反轉分組視角。
Series.YValuesPerPoint 為需保存的值數量。DataTable 綁定時 otherFields 格式化較難,一次通常只能綁定一個欄位;標籤加文字可用 Field{xxxx#xxxx} 語法(# 會被替換)。