2015-08-31 164 views
-3

對我的C#,Wpf應用程序使用Mahapps.Metro框架。 在框架中是wpf元素:NumericUpDownC#將.value轉換爲int

現在我使用的元素是這樣的:

<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

請提供*確切*錯誤消息... –

+0

「Value」屬性的類型是什麼?如果'它是'雙',那麼只需投它而不是試圖解析它。 –

回答

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; 
} 
5

你得到的錯誤是因爲TryParse方法預計爲string值,但你有一個double?值。

沒有必要解析值,你可以從雙轉換它:

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

GetValueOrDefault方法將變成一個null價值爲0,我認爲這就是你想要的東西時,有沒有價值從控制中獲得。