我有一个强类型数据集,其中包含由其expression属性计算的readonly
列。计算列为totalAmountDue
,表达式为( totalAmountBilledColumn - totalAmountPaidColumn )
。问题是当两个计算列中的任何一个发生更改时,我无法获得计算列来重新评估。
有谁知道如何强制数据集重新评估带表达式的列?
感谢。
答案 0 :(得分:2)
刚刚遇到这个。关于表达式的有趣之处在于,在将行添加到表之前,它们不会进行求值。一旦将一行添加到表中,它就会起作用。这是一个例子。
DataTable table = new DataTable();
table.Columns.Add("debit", typeof (double)).DefaultValue = 0;
table.Columns.Add("credit", typeof(double)).DefaultValue = 0;
table.Columns.Add("net", typeof(double),"debit - credit");
DataRow row = table.NewRow();
Console.WriteLine("First: {0}",row["net"]); // won't work
row["debit"] = 500;
Console.WriteLine("Sec: {0}", row["net"]); // won't work
row["credit"] = 0;
Console.WriteLine("Thr: {0}", row["net"]); // won't work
table.Rows.Add(row);
Console.WriteLine(row["net"]); // works