小编Hub*_*ert的帖子

列名称中的C#DataTable DataGrid特殊字符“ /”(斜杠)

我想使用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)

我知道这是由于列名中的斜杠(“ /”)被解释为绑定表达式。

我的问题是

  1. 有没有一种方法可以关闭该行为,即将列名解释为绑定表达式?由于我为DataTable提供了行和列的所有值和标头,因此无需根据列名计算任何数据值。尽管不存在称为“人类毒性”的属性,但“人类毒性”一栏也没有问题。
  2. 如果我不能使用DataTable作为DataGrid的源来实现上述目标,那么将使用哪种正确的数据结构?

这是生成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)

c# wpf datatable binding datagrid

5
推荐指数
1
解决办法
735
查看次数

标签 统计

binding ×1

c# ×1

datagrid ×1

datatable ×1

wpf ×1