如果此列的标题包含点,为什么不能设置datagrid单元格值?

时间:2018-06-29 03:26:44

标签: wpf datagrid

我的wpf应用程序xaml很简单,只有一个数据网格:

<DataGrid ItemsSource="{Binding UserCollection}"/>

在后面的代码中,UserCollection是一个数据表:

private DataTable userCollection;
public DataTable UserCollection
{
    get { return this.userCollection; }
    set
    {
        this.userCollection = value;
        NotifyPropertyChanged();
    }
}

在ViewModel.cs中,代码很简单,创建2列并添加一行:

this.UserCollection = new DataTable();
UserCollection.Columns.Add("col1", typeof(int));
UserCollection.Columns.Add("co.l2", typeof(int));

var r=UserCollection.NewRow();
r["col1"] = 1;
r["co.l2"] = 2;
UserCollection.Rows.Add(r);

但是听众包含一个点的第二列无法在UI中显示该值,您可以看到图片。

为什么?

enter image description here

1 个答案:

答案 0 :(得分:0)

我找到了解决方法,使用以下命令将点字符替换为另一个字符:

StringNameWithDot.Replace(".", "\x2024");

WPF数据表列标题不能包含“。”,“ /”,“ []”,这是另一个链接:

What is it about DataTable Column Names with dots that makes them unsuitable for WPF's DataGrid control?