0
我有一个DataGrid中的Amounts
列,我需要在一个TextBox中进行求和和显示。我试图循环遍历DataGrid行,但找不到这样做的正确语法。 DataGrid绑定到基于TransactionModel
的IEnumerable
。这是代码;总结一个DataGrid列
TransactionModel
public class TransactionModel
{
public int TransactionID { get; set; }
public string TransactionText { get; set; }
public int TransactionAmount { get; set; }
public DateTime TransactionDate { get; set; }
public string TransactionMonth { get; set; }
}
XAML结合为了数据网格
<DataGrid x:Name="dataGrid" Margin="5" AutoGenerateColumns="False" HeadersVisibility="Column" SelectionMode="Single" CanUserAddRows="False" CanUserDeleteRows="False" FontSize="20">
<DataGrid.Columns>
<DataGridTextColumn Header="Transaction" Width="*" Binding="{Binding TransactionText}"/>
<DataGridTextColumn Header="Transaction Amount" Width="*" Binding="{Binding TransactionAmount}"/>
<DataGridTextColumn Header="Transaction Date" Width="*" Binding="{Binding TransactionDate}"/>
<DataGridTextColumn Header="Transaction Month" Width="*" Binding="{Binding TransactionMonth}"/>
</DataGrid.Columns>
</DataGrid>
填充TransactionModel
public IEnumerable<TransactionModel> GetTransactionList()
{
string constr = ConfigurationManager.ConnectionStrings["sqlString"].ConnectionString;
using (var sqlCon = new MySqlConnection(constr))
{
sqlCon.Open();
using (var myQuery = sqlCon.CreateCommand())
{
myQuery.CommandText = "SELECT id, text, amount, date, month FROM financesystem.transactions ORDER BY id";
using (var myReader = myQuery.ExecuteReader())
{
var transactionList = new List<TransactionModel>();
while (myReader.Read())
{
var details = new TransactionModel
{
TransactionID = Convert.ToInt32(myReader[0]),
TransactionText = myReader[1].ToString(),
TransactionAmount = Convert.ToInt32(myReader[2]),
TransactionDate = Convert.ToDateTime(myReader[3], System.Globalization.CultureInfo.CurrentCulture),
TransactionMonth = myReader[4].ToString(),
};
transactionList.Add(details);
}
return transactionList;
}
}
}
}
我将如何循环显示在DataGrid
中的值并将它们相加以显示在TextBox
?
您可以使用自IEnumerable返回来计算的总和?如果是这样的LINQ:“int amountSum = GetTransactionList()。Sum(model => model.TransactionAmount)'' –
@MarcoFatica完美,如果你发布作为答案我可以接受。 – CBreeze