как например из List там отобразить произвольное количество отрезков (именно со стороны XAML, впринципе если просто взять XY координаты точек и построить по ним линии со стороны VM то это без проблем, а вот как "заставить" эти линии отобразиться непосредственно на канвасе уже со стороны view - пока для меня не совсем понятно)
В вашем случае все просто: входящие данные, в XAML инпуты привязываются к VM и далее к модели, а исходящие данные через модель передаются в VM и оттуда уже идет привязка к нужному контролу. В модели, при поступлении данных либо вызывается метод для вычисления точек графика либо вычисление делается по команде из VM отдельным методом. Точки графика сохраняются в ObservableCollection, которая привязывается в XAML стандартным методом. Как именно данные из VM попадают на канвас - завит от вашей реализации графика. Правильный подход будет следующим:
Resources
MyChart.xaml -> xaml разметка графика (контейнер с канвасом, легендой и прочее)
Views
MyChart.cs -> public class MyChart : Control // view - низкоуровневая логика самого контролла
MyChartCanvas.cs -> public class MyChart : Canvas // Тут реализуются методы рендеринга данных
VM
MyChartVM.cs -> тут высокоуровневая логика работы графика, переменные и прочее
Models
MyChartModel.cs -> тут логика расчета данных для графика
И вот это все связывается вместе через события и свойства. Если логика графика простая - то её можно оставить во View, но лучше, конечно, все же вынести в отдельный View просто унаследовав от канваса.