无法将结果加载到data.grid中



我有利息计算器,计算后我想将数据(开始日期、结束日期、原则、日利率、总利率和总额(发送到数据网格。

<DataGrid x:Name="table_interestResultsTable" Height="700" HorizontalAlignment="Left" Margin="12,21,0,0" VerticalAlignment="Top" Width="1000" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Start date" Binding="{Binding interest_SDATE}"/>
<DataGridTextColumn Header="End date" Binding="{Binding interest_EDATE}"/>
<DataGridTextColumn Header="Principle" Binding="{Binding interest_PRINCIPLE}"/>
<DataGridTextColumn Header="ANNUAL RATE" Binding="{Binding interest_ANNUALRATE}"/>
<DataGridTextColumn Header="Daily interest" Binding="{Binding interest_DAILYINTEREST}"/>
<DataGridTextColumn Header="Total interest" Binding="{Binding interest_TOTALINTEREST}"/>
<DataGridTextColumn Header="Total" Binding="{Binding interest_TOTAL}"/>

</DataGrid.Columns>

</DataGrid>

我有代码,在的开头

public Interest()
{
//test at the beginning, is table working
InitializeComponent();
List<User> users = new List<User>();
users.Add(new User() { Id = 1, interest_SDATE = "John Doe", interest_EDATE = new DateTime(1971, 7, 23) });
users.Add(new User() { Id = 2, interest_SDATE = "Jane Doe", interest_EDATE = new DateTime(1974, 1, 17) });
users.Add(new User() { Id = 3, interest_SDATE = "Sammy Doe", interest_EDATE = new DateTime(1991, 9, 2) });
table_interestResultsTable.ItemsSource = users;
}

我正在测试,这张桌子,它工作得很好。然后我有计算,我有错误

private void buttonReportsInterestCalculate_Click(object sender, RoutedEventArgs e)
{


//Checking, are the days set
if (nameReportsInterestDatePickerFrom.SelectedDate == null)
{
MessageBox.Show("Please select start date");
return;
}
if (nameReportsInterestDatePickerTo.SelectedDate == null)
{
MessageBox.Show("Please select end date");
return;
}
if(nameReportsInterestPrinciple == null || nameReportsInterestPrinciple.Text == "")
{
MessageBox.Show("Please enter the value of principle");
return;
}
if (nameReportsInterestAnnualRate == null || nameReportsInterestAnnualRate.Text == "")
{
MessageBox.Show("Please enter the yearly rate");
return;
}

DateTime start_date = DateTime.Parse(nameReportsInterestDatePickerFrom.Text);
DateTime end_date = DateTime.Parse(nameReportsInterestDatePickerTo.Text);
string annualRate_string = nameReportsInterestAnnualRate.Text;
if(annualRate_string.Contains("%"))
{
annualRate_string=annualRate_string.Replace("%", "");
}
decimal annualRate_decimal = decimal.Parse(annualRate_string);
if (annualRate_decimal >= 0.5m)
{
annualRate_decimal /= 100m;
}
decimal principle = decimal.Parse(nameReportsInterestPrinciple.Text, NumberStyles.Any);
//Testing
nameReportsInterestDatePickerFrom.Text = start_date.ToShortDateString();
nameReportsInterestDatePickerTo.Text = end_date.ToShortDateString();
nameReportsInterestAnnualRate.Text = annualRate_decimal.ToString("P");
nameReportsInterestPrinciple.Text = principle.ToString("C");
//Calculate days between start date and end date
TimeSpan elapsed = end_date - start_date;
int days = (int)elapsed.TotalDays;
decimal dailyRate = annualRate_decimal / 365;
dailyRate = Decimal.Round(dailyRate,10);
decimal totalRate = days * dailyRate * principle;
totalRate = Decimal.Round(totalRate,2);
decimal total = totalRate + principle;
nameReportsInterestDailyRate.Text = dailyRate.ToString();
nameReportsInterestTotalRate.Text = totalRate.ToString();
nameReportsInterestTotal.Text = total.ToString();

List<User> users = new List<User>();
users.Add(new User() { Id = 4, interest_SDATE = start_date.ToShortDateString(), interest_EDATE = end_date.ToShortDateString() });
table_interestResultsTable.ItemsSource = users;
}
private void nameReportsInterestPrinciple_TextChanged(object sender, TextChangedEventArgs e)
{
string s = Regex.Replace(((TextBox)sender).Text, @"[^d,]", "");
((TextBox)sender).Text = s;
}
private void nameReportsInterestAnnualRate_TextChanged(object sender, TextChangedEventArgs e)
{
string s = Regex.Replace(((TextBox)sender).Text, @"[^d,]", "");
((TextBox)sender).Text = s;
}
}

}

行中有错误:users.Add(new User() { Id = 4, interest_SDATE = start_date.ToShortDateString(), interest_EDATE = end_date.ToShortDateString() });异常错误在:

interest_EDATE = end_date.ToShortDateString()

为什么我在中没有错误

interest_SDATE = start_date.ToShortDateString()

但当我想在下一列中插入第二个日期时,我有错误

interest_EDATE = end_date.ToShortDateString()

我无法将字符串转换为系统。日期

我发现了一个问题,我已经将公共类用户更改为:

public class User
{
public int Id { get; set; }
public DateTime interest_SDATE { get; set; }
public DateTime interest_EDATE { get; set; }
public decimal interest_PRINCIPLE { get; set; }
public decimal interest_ANNUALRATE { get; set; }
public decimal interest_DAILYINTEREST { get; set; }
public decimal interest_TOTALINTEREST { get; set; }
public decimal interest_TOTAL { get; set; }

然后:

users.Add(new User() { Id = 4, interest_SDATE = start_date, interest_EDATE = end_date, interest_PRINCIPLE = principle, interest_ANNUALRATE = annualRate_decimal,
interest_DAILYINTEREST = dailyRate, interest_TOTALINTEREST = totalRate, interest_TOTAL = total});

开始工作良好。谢谢各位

最新更新