2016-06-07 6 views
0

Die Mausereignisse geben das PlotController anstelle von PlotView oder PlotModel zurück.OxyPlot MouseEvents Zugriff auf PlotModel

Meine Frage ist, wie aus dem Mausereignis auf das PlotModel zugreifen? Könnte mir jemand die Idee hinter dieser Änderung von der Bereitstellung des Plotmodels als Quelle für den Plotcontroller erzählen? Wie würde jemand basierend auf einem Mausereignis, das diesen Plotcontroller als Quelle hat, alle Serien auswählen oder hineinzoomen?

Ich möchte eine Anmerkung hinzufügen, die durch ein Mausereignis ausgelöst wird.

var plott = new PlotModel(); 
plott.MouseDown += Plott_MouseDown; 

public void Plott_MouseDown(object sender, OxyMouseDownEventArgs e) 
    { 
     var plot = sender as PlotController; 

     I NEED TO ACCESS THE PLOTMODEL TO ADD AN ANNOTATION 

     plot.Annotations.Add(new RectangleAnnotation(){ MinimumX = e.Position.X, MinimumY = e.Position.Y }); 
    } 

Antwort

0

Geben Sie einen Namen für Ihr Grundstück in XAML:

<oxy:PlotView x:Name="MyPlotView" .../> 

Zugriff es von Code hinter:

public void Plott_MouseDown(object sender, OxyMouseDownEventArgs e) 
{ 
    MyPlotView.Model.Annotations.Add(new RectangleAnnotation(){ MinimumX = e.Position.X, MinimumY = e.Position.Y }); 
} 
+0

Dank für diesen Hinweis. Eigentlich weiß ich, dass ich aus dem Code dahinter auf die Plotview zugreifen konnte, aber ich benutze Caliburn Micro. Um genau zu sein, eine Caliburn Micro-Nachricht. Wie geht es damit? Gibt es einen Weg? Für mich scheint die Art, ein Ereignis aus dem dahinterliegenden Code auszulösen, Overengineering. – user2799180

Verwandte Themen