Как я понял из документации, в OxyPlot реализовано два подхода к отображению графиков. С помощью PlotView и вынесения логики отображения в код. И с помощью Plot и LineSeries, ориентированных на XAML-разметку. Я пытаюсь действовать по этой инструкции:
https://oxyplot.readthedocs.io/en/latest/getting-started/hello-wpf-xaml.html
Я скачал через NuGet пакет OxyPlot.Wpf. Подключил пространство имен xmlns:oxy="http://oxyplot.org/wpf". Далее я пытаюсь вставить разметку из примера:
<oxy:Plot.Series>
<oxy:LineSeries ItemsSource="{Binding Points}"/>
</oxy:Plot.Series>
</oxy:Plot>
Однако сталкиваюсь с ошибкой XLS0414 «Не удалось найти тип "oxy:Plot". Убедитесь, что не пропущена ссылка на сборку и что все сборки, на которые заданы ссылки, выполнены»
Отдельное непонимание у меня вызывает тот факт, что аналогичный кейс для фреймворка AvaloniaUI отлично работает. В этом случае я подключил пакет OxyPlot.Avalonia и пространство имен xmlns:oxy="http://oxyplot.org/avalonia". Элемент Plot доступен.
Что мне нужно сделать, чтобы использовать XAML-разметку для оформления графиков? Сама разметка очень простая и почти дословно повторяет пример из документации:
<Window x:Class="Project.WPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" mc:Ignorable="d"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="clr-namespace:Project.WPF.ViewModels"
xmlns:oxy="http://oxyplot.org/wpf"
Height="450" Width="800"
Title="{Binding Path=Title}">
<Window.DataContext>
<vm:MainWindowViewModel/>
</Window.DataContext>
<oxy:Plot Title="{Binding Title}">
<oxy:Plot.Series>
<oxy:LineSeries ItemsSource="{Binding Points}"/>
</oxy:Plot.Series>
</oxy:Plot>
</Window
Как я пришел к проблеме (не имеет прямого отношения к вопросу):
Мои коллеги в контексте некоторой работы создают относительно простые приложения с использованием WinForm и Teechart, основное назначение которых - показать данные из БД и в некоторых случаях отобразить график. Но на горизонте замаячило требование сделать подобное под Linux. Я проявил некоторую инициативу, решив заранее разобраться в кроссплатформенной разработке. Моё внимание привлек фреймворк
AvaloniaUI. Однако, мне не удалось использовать в нем Teechart. Недолгий поиск альтернатив привел кOxyPlot. Я предположил, что будет неплохой идеей реализовать однотипный учебный проект одновременно и наAvaloniaUIи наWPF, чтобы не столкнуться с глюками Open Source фреймворка. Однако, столкнулся с непонятным поведением в WPF.
Что мне нужно сделать, чтобы использовать XAML-разметку для оформления графиков?- не верить слепо ошибкам, а попробовать пересобрать проект? XAML штука капризная, она часто не сразу воспринимает добавленные для нее компоненты, очистка и пересборка почти всегда в этом помогает. Если нет, то у вас есть еще ошибка, помимо этой.<Window.DataContext>кстати плохо. – EvgeniyZ Nov 30 '21 at 00:12PlotView). – EvgeniyZ Nov 30 '21 at 03:55