我在我的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");
}
我收到此错误:
Cannot convert "double?" in "string"
也许有人有你的想法,谢谢!
答案 0 :(得分:5)
您得到的错误是因为TryParse
方法需要string
值,但您的值为double?
。
无需解析该值,您只需将其转换为double:
即可int articleStock = (int)numCreateArticleStock.Value.GetValueOrDefault();
GetValueOrDefault
方法会将null
值转换为0
,我认为当没有值从控件中获取时,这就是你想要的。
答案 1 :(得分:1)
由于numCreateArticleStock.Value
是double?
,为什么不检查它是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;
}