1

如果将 Axis 的 VisibleRange 绑定到 ViewModel 中的 IRange 类型的属性,则可以同步轴。因此,如果我有 2 个图表,我可以将它们绑定到同一个 IRange 并且它们会同步。这工作正常。现在我希望能够激活或停用此行为。我做了这样的事情,但它不起作用:

<s:SciChartSurface.YAxis>
    <s:NumericAxis>
        <s:NumericAxis.Style>
            <Style TargetType="s:NumericAxis">
                <Style.Triggers>
                  <DataTrigger Binding="{Binding SyncYaxes}" Value="True">
                      <Setter Property="VisibleRange" Value="{Binding 
                              SyncSharedYrange, Mode=TwoWay}"/>
                  </DataTrigger>
                  <DataTrigger Binding="{Binding SyncYaxes}" Value="False">
                      <Setter Property="VisibleRange" Value="{x:Null}"/>                        
                  </DataTrigger>
                </Style.Triggers>
            </Style>
        </s:NumericAxis.Style>
    </s:NumericAxis>
</s:SciChartSurface.YAxis>

实现这些触发器后,它停止工作,属性 SyncYaxes 是真还是假都没有关系。如果我在没有触发器的情况下设置绑定,则两个轴都按预期同步,但如果我愿意,我无法停止这种行为。你怎么看 ?如何才能做到这一点 ?

4

1 回答 1

0

这在 XAML 中不起作用,但我在 ViewModel 中通过将每个图表绑定到 IRange 来解决它,然后如果它们应该同步,则每次 IRange 中的一个更改时,另一个通过处理 PropertyChanged 来更新(仅当 SyncYAxes 为真时)。

于 2018-06-05T08:09:18.010 回答