Categorías
Otros

El gráfico de líneas XAML de WPF MVVM realiza datos vinculantes

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);
            }

.

  Un compañero de clase que está flotando en el medio y la parte inferior de los alcances, vi estos 25 ejemplos, en realidad prueba suave!

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *