【问题标题】:Slider_ValueChanged Does not work properlySlider_ValueChanged 不能正常工作
【发布时间】:2013-10-02 18:05:02
【问题描述】:

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

所以我所做的是使用ValueChanged 事件将TextBlock 的文本值设置为滑块的值。这是我的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

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

所以知道我做错了什么吗?

【问题讨论】:

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


    【解决方案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" />
    

    因此您不需要事件或代码。如果您需要处理或处理此值,您还可以将这两个值绑定到您的代码或视图模型中的同一属性。

    无论如何,NullReferenceExeption 到底是在哪里被抛出的?如果不确定,请转到 Debug -> Exceptions 并尝试勾选“Common Language Runtime Exceptions”旁边的“Thrown”并尝试再次运行。

    【讨论】:

    • 谢谢。我发现绑定方式比我所做的更好,只有当它只显示整数时。
    • 没问题。在滑块上设置“IsSnapToTickEnabled=True”会将滑块限制为“TickFrequency”间隔,当设置为 1 时,将显示整数。
    • 我知道,但是windows phone 不支持这个属性。
    猜你喜欢
    • 2013-03-30
    • 2010-11-30
    • 2021-10-02
    • 2017-08-06
    • 2013-11-22
    • 2013-09-10
    • 2017-04-05
    • 2013-07-25
    • 2017-04-07
    相关资源
    最近更新 更多