问题描述
我使用的是 MVVM 模式,通过鼠标行为的附件,我在模型中的 Plot
上有鼠标位置。
我使用 DateTimeAxis
作为 x 轴,我想从我的 x 位置获取 x 轴值,但我不知道如何继续。
如果我不使用 MVVM 模式,完成我想要的一个好方法是:
XAML
<oxy:Plot x:Name="TopPlot" MouseMove="TopPlot_MouseMove" >
<oxy:Plot.Axes>
<oxy:DateTimeAxis x:Name="DateAxis" Position="Bottom" />
<oxy:LinearAxis x:Name="ValueAxis" Title="Value" Position="Left"/>
</oxy:Plot.Axes>
</oxy:Plot>
背后的代码:
private void TopPlot_MouseMove(object sender,System.Windows.Input.MouseEventArgs e)
{
var x_axis = this.TopPlot.ActualModel.DefaultXAxis;
var y_axis = this.TopPlot.ActualModel.DefaultYAxis;
var point = OxyPlot.Axes.Axis.InverseTransform(new ScreenPoint(e.GetPosition(TopPlot).X,e.GetPosition(TopPlot).Y),x_axis,y_axis);
}
我尝试对 Plot 的属性模型进行 OneWayToSource
绑定(以便我可以在非 MVVM 模型中执行某些链接),但是我在我的属性中收到的值为 {{1} }.
XAML
null
我的模型中的代码:
<oxy:Plot Model="{Binding Path=Plot_Model,Mode=OneWayToSource}" >
<oxy:Plot.Series>
<oxy:LineSeries ItemsSource="{Binding m_Series,UpdateSourceTrigger=PropertyChanged}"/>
</oxy:Plot.Series>
<oxy:Plot.Axes>
<oxy:DateTimeAxis Position="Bottom"/>
<oxy:LinearAxis Position="Left" Title="Value"/>
</oxy:Plot.Axes>
<i:Interaction.Behaviors>
<mouseMoveMvvm:MouseBehaviour MouseX="{Binding PlotX,Mode=OneWayToSource}"
MouseY="{Binding PlotY,Mode=OneWayToSource}"/>
</i:Interaction.Behaviors>
</oxy:Plot>
有人对如何进行有任何建议吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)