【问题标题】:Why and how to get rid of NullReferenceException为什么以及如何摆脱 NullReferenceException
【发布时间】:2012-05-21 11:23:37
【问题描述】:
namespace WindowsPhoneApp
{

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

    }
}

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

【问题讨论】:

  • 是 ProcentSlider 为空,还是 ProcentSlider.Value 为空?
  • 向该行添加断点并确定 ProcentSlider 或 Value 是否为 null - 可能是任一
  • 他正在处理ProcentSliderValueChanged-Event...所以我认为ShowSliderValue 从未被初始化。
  • 怎么看?抱歉,我还是 C# 新手
  • 在设置 ShowSliderValue 的 Text 属性周围放置一个if (ProcentSlider.HasValue)

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


【解决方案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();
}

【讨论】:

  • 这行得通:D 谢谢!遗憾的是,由于某些声誉要求,我无法投票...
  • 谁能解释一下你到底在做什么?
  • @user1171498 - 这取决于哪个有效,第一个或第二个代码 sn-p?此外,您不能投赞成票,但您可以通过单击赞成/反对票下方的“勾号”将答案标记为“答案”。
  • @user1171498 哪个有效?我会删除没有的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-02
  • 2022-08-18
  • 2021-04-03
  • 2017-12-04
  • 2012-01-27
  • 2016-11-11
  • 2023-03-17
相关资源
最近更新 更多