2016-04-11 31 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

你是什么意思?总共跑动了吗? –