我试图设置类似于SciChart示例套件中的Drag Horizontal Threshold示例的SciChart VerticalLineAnnotation。我的视图模型中的属性绑定了批注,但是当拖动批注时,它将不断地将该属性设置为0。
我尝试在代码中设置属性值,它确实移动了行,正如您期望的那样,表明绑定很好。我在属性上设置了一个断点,并确认0值来自控件,而不是我的代码。
<sc:SciChartSurface x:Name="OverviewSurface"
Margin="5,2,5,2"
Background="White"
Grid.Row="2"
Grid.ColumnSpan="4"
Loaded="OnOverviewSurfaceLoaded"
RenderableSeries="{Binding ElementName=ChartSurface, Path=RenderableSeries}"
YAxes="{sc:AxesBinding YAxes}">
<sc:SciChartSurface.XAxis>
<sc:NumericAxis VisibleRange="{Binding VisibleRange}" DrawMajorGridLines="False" DrawMinorGridLines="False" DrawMajorBands="False" Visibility="Collapsed"/>
</sc:SciChartSurface.XAxis>
<sc:SciChartSurface.Annotations>
<sc:VerticalLineAnnotation VerticalAlignment="Stretch"
IsEditable="True"
ShowLabel="False"
Stroke="#FF42b649"
StrokeThickness="4"
YAxisId="ChannelA"
X1="{Binding SelectedIndex, Mode=TwoWay}" />
</sc:SciChartSurface.Annotations>
</sc:SciChartSurface>
我希望当我沿着图表的水平长度拖动Annotation时,我将获得一个与SelectedIndex中的X位置相对应的值,但我得到的只是零。
答案 0 :(得分:0)
此问题的原因原来是SelectedIndex的数据类型,它是一个无符号整数。尽管VerticalLineAnnotation的X / Y值类型为IComparable,但如果使用IsEditable =“ True”函数,则拖动步长是小数,并且如果绑定到整数类型,它将连续舍入为0,使其无法移动
如果可以在SciChart中更改拖动的步长,则无法找到它。相反,我将SelectedIndex更改为double并将其四舍五入为所需的无符号整数,这解决了我的问题。