2016-04-11 32 views
1

我是新來的c#和應用程序開發。我正在嘗試獲取在列表視圖中的值乘以用戶在文本框中輸入的數量。我的代碼如下:在列表視圖如何乘以數量並記錄C#

protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 
     Menu.PassedData data = e.Parameter as Menu.PassedData; 

     if (data != null) //If data is not 0 
     { 
      PassedData.Add(data); //Increment data in list view 

      double tempTotalValue = 0; 
      foreach (var record in PassedData) 
      { 
       tempTotalValue = tempTotalValue + record.Value; 
       Totaltxt.Text = String.Format(new CultureInfo("en-GB"),"{0:C}", tempTotalValue); 

       textBox3.Text = string.Format("{0:Q2}", record.Value * double.Parse(quanttextBox.Text)); //The code to multiply user input of quantity by each Value produced 
      } 

      TotalValue = tempTotalValue; 
     } 
    } 

文本框上運行時,其顯示其中顯示總價值

<TextBox x:Name="Totaltxt" HorizontalAlignment="Left" Height="45" Margin="250,461,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="140" TextChanged="Totaltxt_TextChanged" Text="{Binding TotalValue}" /> 

錯誤的每個項目

<TextBox Grid.Column="0" Text="{Binding Value}" IsReadOnly="True" FontSize="15" /> 

文本框的值

An exception of type 'System.FormatException' occurred in mscorlib.ni.dll but was not handled in user code 

Troublshooting提示

When converting a string to datetime, parse the string before putting each variable in the date and time object 

我所試圖做的是乘法由用戶輸入併爲總價值ListView控件生成的每個項目的值進行相應的這樣基本上數量*每更新列表視圖中的值。希望這個問題有意義。

+0

錯誤信息說什麼? double應該初始化爲'0.0' 例如'var mytype = 2.0m; m =十進制'var mytype = 2.0d; d =雙''var mytype = 2.0f; f = Float'你能告訴我們在調試代碼時會發生什麼嗎?? – MethodMan

+0

你可以單獨使用'double.Parse(quanttextBox.Text)'並調試嗎?還可以顯示'quanttextBox.Text'的值是什麼? – Valentin

+0

該問題已更新,包含錯誤消息和故障排除提示。 –

回答

0

你會更安全做用戶輸入轉換成一個局部變量試圖在計算中使用它之前:

double result; 
if (double.TryParse(quanttextBox.Text, out result)) 
{ 
    textBox3.Text = (record.Value * result).ToString(); 
} 

然後,如果用戶沒有輸入一個有效的數值代碼贏沒有失敗。

但是,您的錯誤的原因似乎是,您試圖格式化您的結果,就好像它是一個DateTime而不是一個double。

+0

嗨,謝謝你的回答。乘法確實奏效!但它只適用於listview中的第一條記錄。我應該爲數量創建一個單獨的列表視圖嗎?因爲我希望文本框每次增加一個項目被選中時,那麼列表視圖中的每個項目都可以相乘? –

+0

@SmithSunny - 你需要將結果添加到你的跑步總數 – ChrisF

+0

你是什麼意思?總共跑動了嗎? –