null时的数量按钮会崩溃Windows应用商店

时间:2014-05-01 15:15:01

标签: c# xaml button windows-8 windows-store-apps

我创建了一个Windows应用商店应用,它有两个按钮,允许我的用户选择图片数量。控件在需要选择金额时工作,但当他们点击文本框内的“X”时,如果他们想清除它,然后按下按钮,应用程序崩溃。

enter image description here

当我调试时,我的代码块出现了这个错误:

{"Input string was not in a correct format."}

private void PicturesSubtract_Click(object sender, RoutedEventArgs e)
{
    int? value = Convert.ToInt32(this.Pic.Text);

    if (value > 1)
    {
        value--;
    }


    this.Pic.Text = value.ToString();
}

尝试添加或减去图片数量时出现同样的错误。

对此错误的任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

此行会引发您的错误

int? value = Convert.ToInt32(this.Pic.Text);

原因是Convert.ToInt32假设您有一个有效的整数,并在其他情况下抛出异常,包括null。

http://msdn.microsoft.com/en-us/library/system.convert%28v=vs.110%29.aspx

我建议有两种选择

首先,在执行任何其他操作之前检查文本值:

private void PicturesSubtract_Click(object sender, RoutedEventArgs e)
{
    if(String.IsNullOrEmpty(this.Pic.Text))
        return;
....

第二种,使用Int.TryParse方法:

private void PicturesSubtract_Click(object sender, RoutedEventArgs e)
{
    int value;
    if(int.TryParse(this.Pic.Text, out value))
    {
        //...Do Stuff, Value is stored at this point