C# 当null使windows应用商店应用程序崩溃时的数量按钮

C# 当null使windows应用商店应用程序崩溃时的数量按钮,c#,xaml,button,windows-8,windows-store-apps,C#,Xaml,Button,Windows 8,Windows Store Apps,我创建了一个windows应用商店应用程序,它有两个按钮,允许我的用户选择大量图片。当他们需要选择金额时,该控件会工作,但如果他们想清除该金额,则单击文本框内的“X”,然后按下按钮,应用程序就会崩溃 调试时,我的代码块出现以下错误: {输入字符串的格式不正确。} 我在尝试增加或减少图片数量时也会遇到同样的错误 关于此错误的任何帮助都将非常有用。此行将抛出您的错误 int? value = Convert.ToInt32(this.Pic.Text); 原因是Convert.ToInt32假定您

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

调试时,我的代码块出现以下错误:


{输入字符串的格式不正确。}

我在尝试增加或减少图片数量时也会遇到同样的错误


关于此错误的任何帮助都将非常有用。

此行将抛出您的错误

int? value = Convert.ToInt32(this.Pic.Text);
原因是Convert.ToInt32假定您有一个有效的整数,并在其他情况下抛出一个异常,包括null

我建议有两种选择

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

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

可能还有其他选项,但这是我最熟悉的两个。好吧,好吧…可能不是所有其他情况下…我认为如果它是一个带小数点的有效数字,则会截断该值,我自己从来没有尝试过这样使用它。在我检查空值并使用tryParse之后,仍然会出现错误。输入字符串的格式不正确,这意味着,从字面上来说。如果您的输入字符串不是null,也不是整数,那么Convert仍然会抛出该错误。据我所知,特里帕斯不会抛出那个错误。如果您仍然收到此消息,并且正在使用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