Я использую WPFToolkit для создания линейной диаграммы с несколькими LineSeries (несколько цветов).У меня есть элемент управления DataGrid, где DataGrid.RowCount = LineSeriesCount.Сетка данных отображает соответствующие данные для каждой линии на диаграмме.
Мне нужно выделить (изменить ее цвет на черный) линию на диаграмме, когда я выбираю соответствующую сетку данных на dataGrid_SelectedCellsChanged.
iпопробовал ссылку ниже, но это не помогло: Динамическое изменение стиля в WPF
Так что var dpStyle = new Style () {BasedOn = originalStyle};не работает.
Я использую приведенный ниже код для создания необходимого стиля:
public Window1()
{
InitializeComponent();
dataGrid1.Width = mcChart.Width;
HighlightedBlackDataPointStyle = new Style(typeof(LineDataPoint));
HighlightedBlackDataPointStyle.Setters.Add(new Setter(LineDataPoint.VisibilityProperty, Visibility.Hidden)); HighlightedBlackDataPointStyle.Setters.Add(new Setter(LineDataPoint.OpacityProperty, 0.01)); HighlightedBlackDataPointStyle.Setters.Add(new Setter(LineDataPoint.BackgroundProperty, new SolidColorBrush(Colors.Black)));
this.Resources.Add("HighlightedBlackDataPointStyle", HighlightedBlackDataPointStyle);
}
Вот как я пытаюсь установить вышеуказанный стиль:
private void dataGrid1_SelectedCellsChanged(object sender, System.Windows.Controls.SelectedCellsChangedEventArgs e)
{
if (dataGrid1.SelectedIndex >= 0)
{
mcChart.Series.OfType<LineSeries>().ElementAt(dataGrid1.SelectedIndex).DataPointStyle = HighlightedBlackDataPointStyle;
mcChart.Series.OfType<LineSeries>().ElementAt(dataGrid1.SelectedIndex).Refresh();
mcChart.Series.OfType<LineSeries>().ElementAt(dataGrid1.SelectedIndex).UpdateLayout();
mcChart.UpdateLayout();
}
}
Это меняет цвет легенды на черный, но не на предполагаемую линию.
Я добавил все lineSeries в коде C #, установив Sytle при его создании.У меня нет определения стиля в XAML.Поэтому не уверен, смогу ли я использовать привязку DynamicResource из XAML.
Пожалуйста, дайте мне знать, как я могу добиться этого с помощью кода C #, а не XAML.