将TextBox文本转换为整数给出0

时间:2016-06-01 08:50:34

标签: c# wpf integer

我有一个文本框,它的值是自然正数,因为我在做了一些计算之后从另一个文本框生成它并且我的文本框保存结果肯定是数字,当我尝试将值转换为整数时它总是给出0,而文本框保持一个大于0的值,而不是null 我在这里尝试了两种转换方法msdn
我也尝试了TryParse这里建立的MessageBox.Show(updateProductTQ.Text, "Quantity"); p.ProductQuantity = int.Parse(updateProductTQ.Text); MessageBox.Show(p.ProductQuantity.ToString(), "Quantity"); 方法 我创建2个断点,以在转换文本后查看文本框文本和整数值的结果 这是我的代码:

updateProductTQ

p.ProductQuantity是我的文本框名称,MessageBox是整数
第一个200输出是现在文本框MessageBox中显示的数字 第二个ProductQuantity输出为大0

有人可以告诉我为什么我会得到0 ??? 我尝试转换另一个文本框保持号码,它工作正常,这是非常奇怪的事情

这是我的public int ProductQuantity { get { if (ProductCartoons >= 0) { if (ProductBigBox > 0 && ProductSmallBox > 0 && ProductMedBox > 0 && ProductItems >= 0) { _ProdQuan = ProductCartoons * ProductBigBox * ProductMedBox * ProductSmallBox * ProductItems; } else if (ProductBigBox > 0 && ProductMedBox > 0 && ProductItems >= 0) { _ProdQuan = ProductCartoons * ProductBigBox * ProductMedBox * ProductItems; } else if (ProductBigBox>0 && ProductSmallBox > 0 && ProductItems >= 0) { _ProdQuan = ProductCartoons * ProductBigBox * ProductSmallBox * ProductItems; } else if (ProductMedBox > 0 && ProductSmallBox > 0 && ProductItems >= 0) { _ProdQuan = ProductCartoons * ProductMedBox * ProductSmallBox * ProductItems; } else if (ProductBigBox>0 && ProductItems >= 0) { _ProdQuan = ProductCartoons * ProductBigBox * ProductItems; } else if (ProductMedBox > 0 && ProductItems >= 0) { _ProdQuan = ProductCartoons * ProductMedBox * ProductItems; } else if (ProductSmallBox > 0 && ProductItems >= 0) { _ProdQuan = ProductCartoons * ProductSmallBox * ProductItems; } else if (ProductItems >= 0) { _ProdQuan = ProductCartoons * ProductItems; } } return _ProdQuan; } set { _ProdQuan = value; } } 定义:

    public int ProductCartoons
    {
        get { return _Cartoons; }
        set
        {
            _Cartoons = value;
            RaisePropertyChangedEvent("ProductQuantity");
        }
    }

    public int ProductBigBox
    {
        get { return _BigBox; }
        set
        {
            _BigBox = value;
            RaisePropertyChangedEvent("ProductQuantity");
        }
    }

    public int ProductMedBox
    {
        get { return _MedBox; }
        set
        {
            _MedBox = value;
            RaisePropertyChangedEvent("ProductQuantity");
        }
    }

    public int ProductSmallBox
    {
        get { return _SmallBox; }
        set
        {
            _SmallBox = value;
            RaisePropertyChangedEvent("ProductQuantity");
        }
    }

    public int ProductItems
    {
        get { return _Items; }
        set
        {
            _Items = value;
            RaisePropertyChangedEvent("ProductQuantity");
        }
    }

并且由这些文本框引发的所有文本框都通过绑定完成,并且运行良好:

{{1}}

1 个答案:

答案 0 :(得分:0)

你知道原因,如果你注意到ProductQuantity定义它的值(在getter中)取决于ProductCartoons,如果这个值是0你总是得到0 } ProductQuantity

我建议使用调试器并逐步查看在这种情况下导致0的原因。