private async void DataGridPriceDynamic_MouseDoubleClick(object sender, MouseButtonEventArgs e) { DataGrid dgv = (DataGrid)sender; PriceDynamicModel model = (PriceDynamicModel)dgv.SelectedItem; await GetUrlAsync(model.Code); //MessageBox.Show(model.Code.ToString()); }
private void DataGridPriceDynamic_SelectionChanged(object sender, SelectionChangedEventArgs e) { DataGrid dgv = (DataGrid)sender; PriceDynamicModel model = (PriceDynamicModel)dgv.SelectedItem; MainChart.Model.Series.Clear(); MainChart.Model.Axes.Clear(); MainChart.Model.Title = "Товар не выбран"; MainChart.Model.InvalidatePlot(true); if (model != null) { bool isDaily = (bool)CheckBoxChoosenDaily.IsChecked; PropertyInfo[] props = model.GetType().GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).OrderBy(x => x.Name).ToArray(); List <int> prices = new List <int>(); foreach (PropertyInfo item in props) { if (item.Name.Contains("Date") && item.Name.Length > 4 && item.Name.Length < 7) { try { int?a = (int)item.GetValue(model); prices.Add(a ?? 0); } catch (Exception) { } } } List <DateTime> dates = dbLoader.GetTopStatistic(isDaily, prices.Count).Select(x => x.CreationDate).ToList(); if (dates.Count != 0 && dates.Count == prices.Count) { MainChart.Model.Axes.Add(new DateTimeAxis { Position = AxisPosition.Bottom, Minimum = DateTimeAxis.ToDouble(dates.First().Date), Maximum = DateTimeAxis.ToDouble(dates.Last().Date), StringFormat = "dd-MM-yyyy", MinimumMinorStep = 1, MinimumMajorStep = 1 }); MainChart.Model.Axes.Add(new LinearAxis { Position = AxisPosition.Left, Minimum = LinearAxis.ToDouble(prices.Min() * 0.95), Maximum = LinearAxis.ToDouble(prices.Max() * 1.05), MinimumMinorStep = 1 }); var areaSeries = new AreaSeries(); if (prices.Count == dates.Count) { for (int i = 0; i < prices.Count; i++) { DataPoint dp = new DataPoint(DateTimeAxis.ToDouble(dates[i]), (double)prices[i]); areaSeries.Points.Add(dp); } MainChart.Model.Series.Add(areaSeries); MainChart.Model.Title = model.Name; } MainChart.Model.InvalidatePlot(true); } } }