Во-первых, я говорю моему DataSet, как интерпретировать xml с помощью xsd-файла.Элементом вопроса xml должен быть KeyValuePair, соответствующая строка в моем xsd выглядит так:
<xs:element name="MyKeyValuePair" msdata:DataType="System.Collections.Generic.KeyValuePair`2[[System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" type="xs:anyType" />
xsd загружается в DataSet следующим образом:
myDataSet.ReadXmlSchema(new StringReader(myXsdString));
Это прекрасно работаеткак я могу проверить в отладчике, что DataType столбца является правильным (у меня есть несколько строк, несколько удваивается, некоторые System.Guid и т. д. и - конечно, мой KeyValuePair).Затем я загружаю xml с помощью
myDataSet.ReadXml(new StringReader(myXmlString));
xml выглядит так:
<DataSet>
<DataTable>
<MyGuid>8F6FC345-5362-4518-B652-0CC3AD54901E</MyGuid>
<MyKeyValuePair>[67b7fdd1-2079-4311-a7a3-cd2fb0b31384, myValue]</MyKeyValuePair>
<MyBool>0</MyBool>
</DataTable>
</DataSet>
Все типы анализируются правильно, но, очевидно, DataSet не знает, как анализировать универсальную KeyValuePair.Как мне сообщить DataGrid, как анализировать определенные типы?Я предполагаю, чтобы использовать как-то TypeConverters, но как именно?Thanx