我不知道在哪里寻找这个...我有一个viewmodel,它有一个底层DataRow提供模型的一部分。我想在垂直布局中将此信息显示为单个记录。我计划使用DataGrid,因为我希望用户能够在DataTable中添加/删除/重命名行,尽管只查看一条记录。我不太确定如何实现这个目标。我期待的例子如下:
来源数据表
ID,名称,价值
1,一,1
2,二,2
在我的UI中预期会有一个类似于以下内容的表
ID | 1
姓名|一个
价值| 1
答案 0 :(得分:1)
您可以将DataRow公开为字段列表:
public class DataRowField
{
public int Index { get; set; }
public string Name { get; set; }
public object Value { get; set; }
}
public IEnumerable<DataRowField> Fields
{
get
{
return _dataRow.Table.Columns.Cast<DataColumn>()
.Select((column, i) => new DataRowField
{
Index = i,
Name = column.ColumnName,
Value = _dataRow[column]
});
}
}
然后您只需要将DataGrid绑定到Fields
属性