WPF - 将数据网格绑定到数据表,自动生成的列,布尔值没有标记为检查
问题描述:
我有一个wpf用户控件,绑定到数据表的数据网格。列是自动生成的。出于某种原因,绑定的布尔值不会显示为已检查。我有的文本列正确显示。这里是我的代码有:WPF - 将数据网格绑定到数据表,自动生成的列,布尔值没有标记为检查
XAML:
<DataGrid
ItemsSource="{Binding Data.DefaultView}"
Grid.ColumnSpan="2"
CanUserAddRows="False"
CanUserDeleteRows="False"
CanUserReorderColumns="False"
CanUserSortColumns="False"
CanUserResizeColumns="True"
CanUserResizeRows="True"
/>
代码在视图模型:
public void SetupDataTable()
{
this.Data = new DataTable();
var column = this.Data.Columns.Add("#", typeof(int));
column.ReadOnly = true;
column = this.Data.Columns.Add("Description", typeof(string));
column.ReadOnly = true;
column = this.Data.Columns.Add(this.CurrentReliefDevice.ToString(), typeof(bool));
column.ReadOnly = true;
foreach (var reliefDevice in this.OtherReliefDevices)
{
this.Data.Columns.Add(reliefDevice.ToString(), typeof(bool));
}
foreach (var pipeItem in this.PipeItems)
{
var dataRow = this.Data.NewRow();
dataRow[0] = pipeItem.PipeItemNumber;
dataRow[1] = pipeItem.PipeItemType?.ShortName;
dataRow[2] = true;
var array = this.OtherReliefDevices.ToArray();
for (var i = 0; i < array.Count(); i++)
{
dataRow[i + 3] = pipeItem.AssociatedReliefDevices.Contains(array[i]);
}
this.Data.Rows.Add(dataRow);
}
this.Data.AcceptChanges();
}
答
我想通了。它与绑定无关。我的列标题在运行时可用,其中包含句点“。”。在他们中。这显然是中断列标题的问题。当我删除期间,它工作得很好。
似乎适合我。 – AQuirky
具体来说,我所看到的是dataRow [2]没有在网格中显示,即使它被设置为true。 –