为什么以及如何摆脱 NullReferenceException

Why and how to get rid of NullReferenceException

提问人:user1171498 提问时间:5/21/2012 最后编辑:Brian Mainsuser1171498 更新时间:5/21/2012 访问量:532

问:

namespace WindowsPhoneApp
{

    Class MainPage()
    {
        private void ProcentSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
            ShowSliderValue.Text = ProcentSlider.Value.ToString(); //<-- NullReferenceException
        }

    }
}

我无法将 Slider 控件的值引用到 TextBox 控件...

C# Windows-Phone-7 滑块 NullReferenceException

评论

0赞 Brian Mains 5/21/2012
ProcentSlider 为 null 还是 ProcentSlider.Value 为 null?
0赞 Liath 5/21/2012
向行添加断点,并确定 ProcentSlider 或 Value 是否为 null - 它可以是
0赞 webber2k6 5/21/2012
他正在处理...所以我认为从未初始化过。ValueChanged-EventProcentSliderShowSliderValue
0赞 user1171498 5/21/2012
怎么看?对不起,我还是 C 的新手#
0赞 Cheesebaron 5/21/2012
设置 ShowSliderValue 的 Text 属性if (ProcentSlider.HasValue)

答:

1赞 DaveDev 5/21/2012 #1

试试这个 - 可能是因为 ShowSliderValue 在不同的线程中运行。不过有点猜测。

private void ProcentSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
    Dispatcher.BeginInvoke(new Action(() => ShowSliderValue.Text = ProcentSlider.Value.ToString();));
}

或者也许是这个?

private void ProcentSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
    var slider = (ProcentSlider)sender;
    ShowSliderValue.Text = slider.Value.ToString();
}

评论

0赞 user1171498 5/21/2012
这:D奏效了谢谢!可悲的是,由于某些声誉要求,我无法投票......
0赞 user1171498 5/21/2012
谁能解释一下你到底在做什么?
1赞 Richard Szalay 5/22/2012
@user1171498 - 这取决于哪个有效,第一个还是第二个代码片段?此外,您不能投赞成票,但您可以通过单击赞成/反对票下方的“勾号”将答案标记为“答案”。
0赞 DaveDev 5/22/2012
@user1171498哪个有效?我将删除没有答案的答案。