Scichart: как активировать или деактивировать синхронизацию диапазона осей - PullRequest
0 голосов
/ 01 июня 2018

Синхронизация осей возможна, если привязать VisibleRange оси к свойству типа IRange во ViewModel.Поэтому, если у меня есть 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 истинным или ложным.Если я установлю привязку без триггеров, обе оси синхронизируются, как и ожидалось, но я не могу остановить это поведение, если захочу.Как вы думаете ?Как это можно сделать?

1 Ответ

0 голосов
/ 05 июня 2018

Это не сработало в XAML, но я решил это во ViewModel, привязав каждую диаграмму к IRange, и затем, если они должны быть синхронизированы, каждый раз, когда один из IRange изменяется, тогда другой обновляется путем обработки PropertyChanged (только еслиSyncYAxes это правда).

...