代码:
private void slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
updateTickCounter(slider1.Value);
}
private void updateTickCounter(double value)
{
tickCounter.Content = value.ToString();
}
XAML:
<Slider Height="32" HorizontalAlignment="Right" Margin="0,21,61,0" Name="slider1" VerticalAlignment="Top" Width="200" IsSnapToTickEnabled="True" Orientation="Horizontal" TickFrequency="1" TickPlacement="BottomRight" Value="1" Minimum="1" Maximum="10" ValueChanged="slider1_ValueChanged" />
我试图让滑块从10中的值1开始。每次移动滑块时,我都想要一个名为&#39; tickCounter&#39;的标签。改变文字。
以上代码在运行时抛出异常 - &#34;对象引用未设置为对象的实例。&#34;
然而,一旦我改变了&#34;值&#34;的值。和&#34;最低&#34;在XAML中它工作正常。这好像我不能让它从零开始。这真的很奇怪。有什么帮助吗?
答案 0 :(得分:2)
如果我查看提供的堆栈跟踪,那么我认为唯一可能的原因是tickCounter == null
答案 1 :(得分:2)
使用DataBinding而不是使用事件来更新标签。
<Slider Name="slider1" IsSnapToTickEnabled="True" Orientation="Horizontal" Value="1" Minimum="1" Maximum="10" />
<Label Name="tickCounter" Content="{Binding Path=Value, ElementName=slider1"} />
此外,如果您不需要Label
的任何其他功能,则应使用TextBlock
。
<TextBlock Name="tickCounter" Text="{Binding Path=Value, ElementName=slider1"} />