Scichart:如何激活或停用轴范围同步
Scichart: how to activate or deactivate the axes range synchronization
如果将轴的 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 是真还是假都没有关系。如果我在没有触发器的情况下设置绑定,两个轴都会按预期同步,但如果我愿意,我无法停止此行为。你怎么看 ?如何做到这一点?
这在 XAML 中不起作用,但我在 ViewModel 中解决了这个问题,方法是将每个图表绑定到一个 IRange 然后如果它们应该同步,每次 IRange 之一发生变化时,另一个就会更新通过处理 PropertyChanged(仅当 SyncYAxes 为真时)。
如果将轴的 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 是真还是假都没有关系。如果我在没有触发器的情况下设置绑定,两个轴都会按预期同步,但如果我愿意,我无法停止此行为。你怎么看 ?如何做到这一点?
这在 XAML 中不起作用,但我在 ViewModel 中解决了这个问题,方法是将每个图表绑定到一个 IRange 然后如果它们应该同步,每次 IRange 之一发生变化时,另一个就会更新通过处理 PropertyChanged(仅当 SyncYAxes 为真时)。