LvCharts.Wpf - Как обновить значения меток (перерисовать метки) - PullRequest
0 голосов
/ 03 августа 2020

Пытаюсь повесить фреймворк под названием Live Charts. Я читаю свои значения и метки из базы данных MS SQL. При первом чтении значений отображается все. Я добавил новое событие, когда я выбираю другой элемент из списка, он обновляет запрос и приносит другие значения.

Проблема в том, что когда я привожу другие значения, мои ярлыки не обновляются. Теперь я отлажен, и переменные содержат все, как ожидалось, но значения меток не обновляются. Может быть, есть какая-то команда для принудительного обновления диаграммы, чтобы я мог перерисовывать метки?

Метки привязаны к переменной

<lvc:Axis x:Name="axisX"
          FontFamily="Arial" 
          Foreground="Black" 
          FontSize="10" 
          MinValue="0" 
          MaxValue="9" 
          LabelsRotation="25" 
          Title="" 
          Labels="{Binding Labels}">

Я обновляю все значения и pu sh для диаграммы

public void ChartDraw()
{
   Labels = new[] { "" };
   Labels = Str.ToArray(); //Labels get values from MS SQL, values are correct.
   DataContext = this;

   YFormatter = value => value + " %";

   foreach (string sqlread in Sql_Koncentracija)
   {
      SeriesCollection[0].Values.Add(Convert.ToDouble(sqlread)); // this adds values to //chart and it updates automatically, but labels dont update.
   }

}

Ответы [ 2 ]

0 голосов
/ 03 августа 2020

Для тех, кто смотрит в будущее, вот как я это решил:

DataContext = Labels;
DataContext = this;

добавьте эти две строки. Если бы я добавил только DataContext = labels; График даже не рисовал.

0 голосов
/ 03 августа 2020

поместите значение привязки DataContext в загрузку или в конструктор класса:

...
public YourClass() { 
    InitializeComponent();
    DataContext = this; 
} 

или, если вам нужен контекст данных инициализации после загрузки, установите свой контекст после загрузки элемента управления / формы:

public YourClass() { 
    InitializeComponent();
    this.Loaded += (s, e) => {
                this.DataContext = this; ;
            };
} 
...