如何将摇摄命令绑定到WPF中OxyPlot的左键按钮?

时间:2015-06-26 19:25:50

标签: wpf mvvm oxyplot

我在WPF应用程序中使用Oxyplot控件。是否有一种MVVM友好的方式来重新连接右键单击操作以通过左键单击发生?

我当前的wpf代码是

<oxy:PlotView Model="{Binding MyData}" Grid.Column="1" Grid.Row="0" />

1 个答案:

答案 0 :(得分:3)

我建议你创建一个用户控件:

myUC.xaml

<oxy:PlotView x:Name="PlotView1" Model="{Binding **MyPlotModel**}" />

myUC.xaml.cs

public partial class myUC : UserControl
{
    public myUC()
    {
        InitializeComponent();
        PlotView1.Controller = new OxyPlot.PlotController();
        /* Events Managment */
        PlotView1.Controller.UnbindAll();
        PlotView1.Controller.BindMouseDown(OxyMouseButton.Left, PlotCommands.PanAt);

    }
}

注意我已经用MyPlotModel替换了Mydata,如果你想直接绑定数据,请改用Plot。

它不是真正的MVVM,因为您必须使用此UC,但您可以更改其DataContext以将其绑定到ViewModel。

通常你可以绑定一个从viewModel创建的Controller,就像这样:

<oxy:PlotView x:Name="PlotView1" Model="{Binding **MyPlotModel**}" Controller="{Binding MyPlotController}"/>

但它似乎有问题,我无法弄清楚原因。可能这会对你有所帮助 https://github.com/oxyplot/oxyplot/issues/436 如果你能在没有UC的情况下解决它,请告诉我。