Автоматически сгенерированные столбцы Datagrid с типом bool - PullRequest
2 голосов
/ 03 января 2012

Я использую сетку данных 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 ]

2 голосов
/ 03 января 2012

Укажите режим записи, передав System.Data.XmlWriteMode.WriteSchema в WriteXML.

typedDataset.WriteXml("c:\\data.xml", System.Data.XmlWriteMode.WriteSchema);
0 голосов
/ 03 января 2012

У DataGrid нет способа узнать, что такое «предполагаемый» тип атрибута: когда вы читаете XML, вам нужно проанализировать его в строго типизированной структуре данных, сейчас все считаетсяstring.

...