2015-08-31 5 views
-3

Im, используя структуру Mahapps.Metro для моего приложения C#, Wpf. В каркасе находится элемент wpf: NumericUpDown.C# convert .value to 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'? Если это «double», тогда просто бросайте его вместо того, чтобы пытаться его проанализировать. –

ответ

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

Ошибка вы получаете, потому что метод TryParse ожидает, как string значения, но у вас есть значение double?.

Там нет необходимости разобрать значение, вы можете просто преобразовать его из двойной:

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

Метод GetValueOrDefault повернет значение null в 0, я предполагаю, что это то, что вы хотите, когда нет никакого значения чтобы получить контроль.