C#将.value转换为int

时间:2015-08-31 19:19:14

标签: c# wpf mahapps.metro

我在我的C#,Wpf应用程序中使用Mahapps.Metro框架。 在框架中是wpf元素:NumericUpDown

现在我使用了这样的元素:

<Controls:NumericUpDown Name="numCreateArticleStock" Minimum="0"/>

现在我想将字段中输入的值转换为int值。

这是我的尝试:

int articleStock = 0;

if(!Int32.TryParse(numCreateArticleStock.Value, out articleStock)
{
    await this.ShowMessageAsync("Error", "Error - Message");
}

我收到此错误:

  1. Cannot convert "double?" in "string"
  2. 也许有人有你的想法,谢谢!

2 个答案:

答案 0 :(得分:5)

您得到的错误是因为TryParse方法需要string值,但您的值为double?

无需解析该值,您只需将其转换为double:

即可
int articleStock = (int)numCreateArticleStock.Value.GetValueOrDefault();

GetValueOrDefault方法会将null值转换为0,我认为当没有值从控件中获取时,这就是你想要的。

答案 1 :(得分:1)

由于numCreateArticleStock.Valuedouble?,为什么不检查它是null,如果不是int则将其投放到null

int articleStock = 0;
if(!numCreateArticleStock.Value.HasValue)
{
    // value is null decide what to do in that case.
}
else
{
    articleStock = (int)numCreateArticleStock.Value.Value;
}