Your comments

Not sure if it can work, but did you try to set the width in the xaml and bind it to a parameter from your code behind that you would increment when you add data?
So after looking for a while, I had the great idea to look on Google (ok, it should have been the first idea :) ), and I found this documentation. Specifically, this part "The category axis is using the index of the label collection items as coordinates. If you have 5 categories in the Labels collection, the categories will be placed at coordinates 0 to 4. The range of the axis will be from -0.5 to 4.5 (excluding padding)."

So I added this little line of code :

private CandleStickAndVolumeSeries ModifyCandlestick(CandleStickAndVolumeSeries css)
{
for (int i = 0; i < css.Items.Count; i++)
{
css.Items[i].X = i;
}
return css;
}

I also keep the original record which is the one that is public even though it is not plotted to my PlotModel. It allows to the original date time coordinate.
Max, you can also set a maximum / minimum pan/zoom on each axis :

linearAxis1.AbsoluteMaximum = 63;
linearAxis1.AbsoluteMinimum = -17;

here your user will be able to zoom and pan but only in the -17 to 63 range on the specified axis.
Ok so I found a possible solution, which in a way is better, but seems to raise a bug.

I understood that my issue came from the fact that I should use a new instance of a plot view, so I try to look at it differently mostly because I don't know how to instanciate a new plot view that would actually be the existing one - and keeping in mind that maybe I did not understood properly the issue. Anyway the solution seems better than my initial idea.

So I added a ControllerVM class in my View Model to host a new instance of a controller and bind it to the XAML.

It basically looks like this (lets forget for now my PlotModelVM class) :

public class VisualizerVM
{
public PlotModelVM PlotModelVM { get; set; }
public ControllerVM ControllerVM { get; set; }

public VisualizerVM()
{
this.PlotModelVM = new PlotModelVM();
this.ControllerVM = new ControllerVM();
}
}

public class ControllerVM
{
public ControllerVM()
{
this.Controller = new PlotController();
}
public PlotController Controller { get; private set; }
}

And here is my xaml

<oxy:PlotView Name="MainPlotView" Model="{Binding PlotModelVM.PlotModel}" Margin="0,29,0,0" Controller="{Binding ControllerVM.Controller}"/>

So now I can properly use UnbindMouseDown(OxyMouseButton.Left);

But I still dont understand how to reassign the Tracker to the mousehover event. Any ideas?
Actually it seems the code given in the documentation is not working. When I do

PlotController customController = new PlotController();
this.MainPlotView.Controller = customController;

The last line throw an exception




As far as I understood no. See the limitation section of this page : docs.oxyplot.org/en/latest/introduction/features.html
Hi,

var linearAxis1 = new LinearAxis();
linearAxis1.IsZoomEnabled = false;
linearAxis1.IsPanEnabled = false;

Check examples there http://resources.oxyplot.org/examplebrowser/