具有bool类型的自动生成的Datagrid列

时间:2012-01-03 08:57:01

标签: wpf wpfdatagrid

我正在使用WPF数据网格。我绑定到网格的数据没有固定数量的列,所以我将AutoGeneratedColumns设置为True。

<DG:TestDataGrid x:Name="grTestData" ItemsSource="{Binding}" LoadingRow="grTestData_LoadingRow" UnloadingRow="grTestData_UnloadingRow" AutoGeneratingColumn="grTestData_AutoGeneratingColumn" AutoGenerateColumns="True" Visibility="Visible" SelectionUnit="CellOrRowHeader"></DG:TestDataGrid>

使用自动生成的列时,无论遇到bool类型的列,它都使用DataGridCheckbox列。当用户关闭此屏幕时,我将在xml文件中保存分配给数据网格的数据。

ds.Tables[0].WriteXml(path);
//here path is the place where I am storing the xml

当用户打开时我再次从xml加载数据并将其分配回网格。

ds.ReadXmlSchema(path);
ds.ReadXml(path);
grTestData.ItemsSource=ds.Table[0].DefaultView

现在的问题是,布尔列没有显示复选框。对于先前已检查过的复选框,它在“True”列中显示文本值,对于未选中的复选框,则显示false。请指导我,我该如何防止它。如果你需要关于代码的任何其他信息......请提及它。我会把它贴在这里。

此致 Priyank

2 个答案:

答案 0 :(得分:2)

通过将System.Data.XmlWriteMode.WriteSchema传递给WriteXML来指定写入模式。

typedDataset.WriteXml("c:\\data.xml", System.Data.XmlWriteMode.WriteSchema);

答案 1 :(得分:0)

DataGrid无法知道属性的“预期”类型是什么,当您读取需要将其解析为强类型数据结构的XML时,现在一切都被认为是成为string