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