我想使用DataGrid在C#中显示字符串表。列名是动态生成的(即在编译时未知)。
这是一个例子:

此处,数字已转换为字符串。
我正在使用DataTable作为包含整个表(行和列标题)的DataGrid的源。但是,我有一个问题,即“气候变化”列中的值未显示在DataGrid中。相反,我在控制台上收到以下错误消息
"BindingExpression path error: 'climate w' property not found on 'object'
''DataRowView' (HashCode=22429696)'. BindingExpression:Path=climate
w/change; DataItem='DataRowView' (HashCode=22429696); target element is
'TextBlock' (Name=''); target property is 'Text' (type 'String')"
Run Code Online (Sandbox Code Playgroud)
我知道这是由于列名中的斜杠(“ /”)被解释为绑定表达式。
我的问题是
这是生成DataTable的代码。
public DataTable PaValues { get; set; }
private void CreateDataSet()
{
var dt = new DataTable("Perturbation Analysis");
List<String> ics = _perturbationAnalysis.ImpactCatagories();
dt.Columns.Add("Parameters");
foreach (var ic in ics)
{
dt.Columns.Add(Sanatize(ic));
}
foreach (var parameter in _perturbationAnalysis.ParameterNames())
{
var dr = dt.NewRow();
dr[0] = parameter; …Run Code Online (Sandbox Code Playgroud)