有一个叫的课程DisplayTable。以后绑定到一些观察Collection,然后将值填充到datatable。我需要表的value列应仅接受整数,小数,双精度。public class DisplayTable{ public string AnalyteName { get; set; } public string Units { get; set; } [RegularExpression(@"0-9+(.)", ErrorMessage="This field accept Only numeric values")] public float ReferenceValue { get; set; }}//Binding the class to Collectionpublic ObservableCollection<DisplayTable> list { get; set; }// creating an istance to the classDisplayTable d = new DisplayTable();d.AnalyteName ="c"d.Units= "mg"this.list.Add(d) table.Columns.Add("Analyte Name"); table.Columns.Add("Units"); table.Columns.Add("Value"); foreach (var item in this.list) { drn = table.NewRow(); int col = 0; drn[col] = item.AnalyteName ; drn[col + 1] = item.Units; drn[col + 2] = item.ReferenceValue; table.Rows.Add(drn); table.AcceptChanges(); } dataGrid.ItemsSource = table.DefaultView;
1 回答
繁星coding
TA贡献1797条经验 获得超4个赞
一个DataColumn有一个数据类型,通过它的暴露DataType属性。
的Add方法DataColumnCollection有几个重载,其中一些重载允许您指定列的数据类型。
您当前使用的重载使用默认数据类型,它是一个字符串。
如果要指定其他数据类型,请使用另一个重载:
table.Columns.Add("Value", typeof(decimal));
但是,您对可以容纳多种数据类型(整数,小数双精度和浮点型)的列感兴趣,并且这些数据类型不可互换。
我选择了decimal数据类型,因为它比a更为准确double,但是由于其他浮点数据类型(float,double)之间没有隐式转换,因此在设置单元格值时decimal必须将值显式转换为decimal:
foreach (var item in this.list)
{
drn = table.NewRow();
int col = 0;
drn[col] = item.AnalyteName ;
drn[col + 1] = item.Units;
drn[col + 2] = (decimal) item.ReferenceValue;
table.Rows.Add(drn);
table.AcceptChanges();
}
- 1 回答
- 0 关注
- 121 浏览
添加回答
举报
0/150
提交
取消