2016-06-07 108 views
0

鼠標事件返回PlotController而不是plotView或plotModel。OxyPlot MouseEvents如何訪問PlotModel

我的問題是如何從鼠標事件中訪問plotModel?有人能告訴我這個改變背後的想法嗎?從提供plotmodel作爲源到現在提供劇情控制器?如何根據鼠標事件選擇所有系列或放大,並將此plotcontroller作爲源?

我想添加由鼠標事件觸發的註釋。

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 }); 
    } 

回答

0

XAML提供一個名稱的情節:

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

訪問它從後面的代碼:

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

感謝您的提示。其實我知道我可以通過後面代碼的名字來訪問plotview,但我使用Caliburn Micro。更準確地說,Caliburn Micro的消息。如何做到這一點?有沒有辦法?對我來說,從後面的代碼觸發某些事件的方式似乎是過度工程。 – user2799180