Slider_ValueChanged无法正常工作

时间:2013-10-02 18:05:02

标签: c# xaml windows-phone-7 slider

我正在尝试将TextBlock绑定到Slider值。

所以我做的是将TextBlock的文本值设置为带有ValueChanged事件的滑块的值。这是我的XAML

<TextBlock Name="PartyNumber" Text="1"  
           FontSize="40" FontFamily="Calibri" 
           Width="100" FontWeight="Bold" Foreground="Green"/>
<Slider Name="PartyNumberSlider" Grid.Row="5" 
        Width="340" Style="{StaticResource SliderStyle1}" 
        Height="100" Maximum="12" 
        Minimum="1" Value="1" 
        ValueChanged="PartyNumberSlider_ValueChanged" />

我的代码背后是这样的:

private void PartyNumberSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
    PartyNumber.Text = PartyNumberSlider.Value.ToString();
}

当我启动应用时,ValueChanged事件会在初始化时触发,并处理NullReferenceExeption

我甚至无法更改滑块的值。

所以对我做错了什么的想法?

1 个答案:

答案 0 :(得分:1)

我把你写的内容放到WPF应用程序中,它按预期工作。我可能会建议使用实际的数据绑定:

<TextBlock Name="PartyNumber" Text="{Binding ElementName=PartyNumberSlider, Path=Value}" 
    FontSize="40" FontFamily="Calibri" Width="100" FontWeight="Bold" Foreground="Green"/>
<Slider Name="PartyNumberSlider" Grid.Row="5" Width="340" Height="100" Maximum="12" Minimum="1" Value="1" />

所以你不需要背后的事件或代码。如果您需要处理或处理此值,您还可以将两个值绑定到代码隐藏或viewmodel中的同一属性。

无论如何,NullReferenceExeption究竟在哪里投掷?如果您不确定,请转到Debug - &gt;例外并尝试在“公共语言运行时异常”旁边勾选“投掷”并尝试再次运行。