Xaml
<dxc:ChartControl DataSource="{Binding LineChartData}" HorizontalAlignment="Center" Grid.Row="2" Grid.RowSpan="1" VerticalAlignment="Center" Grid.ColumnSpan="5">
<dxc:ChartControl.Titles>
<dxc:Title Content="Daily output fluctuation chart this month" HorizontalAlignment="Center" />
</dxc:ChartControl.Titles>
<dxc:ChartControl.Diagram>
<dxc:XYDiagram2D>
<dxc:XYDiagram2D.Series>
<dxc:LineSeries2D DisplayName="Series1" Name="Series1" MarkerVisible="False" ArgumentDataMember="Argument" ValueDataMember="Value">
</dxc:LineSeries2D>
</dxc:XYDiagram2D.Series>
</dxc:XYDiagram2D>
</dxc:ChartControl.Diagram>
</dxc:ChartControl>
XAML.cs
public partial class EmployeeReportView : UserControl
{
public EmployeeReportView()
{
InitializeComponent();
this.DataContext = new EmployeeReportViewModel(this);
}
}
VerModelo
public class ProductDayChart
{
public string Argument { get; set; }
public int Value { get; set; }
}
#region Chart data binding
private ObservableCollection<ProductDayChart> _linechartdata;
public ObservableCollection<ProductDayChart> LineChartData
{
get { return _linechartdata; }
set
{
_linechartdata = value;
RaisePropertyChanged("LineChartData");
}
}
#endregion
Write in the constructor: LineChartData = new ObservableCollection<ProductDayChart>();
The following is to get data from the database, add the data to the line chart
//Calculate the number of days in the month
DateTime dtNow = DateTime.Now;
int days = DateTime.DaysInMonth(dtNow.Year, dtNow.Month);
DateTime startMonth = dtNow.AddDays(1-dtNow.Day); //beginning of the month
int[] ProductCountOfDay = new int[days];//Save the number of products produced on each day of the month
for(int i=0;i<days;i++)
{
ProductDayChart item = new ProductDayChart();
string StartTime = (startMonth.AddDays(i)).ToString("yyyy-MM-dd") + " 00:00:00";
string EndTime = (startMonth.AddDays(i)).ToString("yyyy-MM-dd") + " 23:59:59";
string sql = "SELECT count (*) FROM [dbo].[t_ws_wor] where [wor_bs_pt]=32 and [wor_end_date]>'" + StartTime + "' and [wor_end_date]<'" + EndTime + "'";
DataTable dt = DBHelper.SelectToDataTable(sql);
ProductCountOfDay[i] = int.Parse(dt.Rows[0][0].ToString());
item.Argument = (startMonth.AddDays(i)).ToString("MM-dd");
item.Value = ProductCountOfDay[i];
LineChartData.Add(item);
}
.