XML десериализовать и загрузить datagridview - PullRequest
1 голос
/ 12 декабря 2011

Я пытаюсь создать XML-файл и загрузить содержимое в сетку данных.Из того, что я прочитал, я должен быть в состоянии сделать простое

datagrid1.DataSource = cars;

, но по какой-то причине он ничего не показывает в моем обзоре данных.Я использую в качестве пробного варианта этот ответ , чтобы посмотреть, смогу ли я заставить его работать.Я не был уверен, должен ли я публиковать весь код здесь или ссылка достаточно.При необходимости я могу скопировать / вставить этот код здесь.Если не может кто-нибудь направить меня в правильном направлении?

Класс cars.cs

[Serializable()]
public class Car
{
 [System.Xml.Serialization.XmlElement("StockNumber")]
 public string StockNumber { get; set; }

 [System.Xml.Serialization.XmlElement("Make")]
 public string Make { get; set; }

 [System.Xml.Serialization.XmlElement("Model")]
 public string Model { get; set; }
}


[Serializable()]
[System.Xml.Serialization.XmlRoot("CarCollection")]
public class CarCollection
{
  [XmlArray("Cars")]
  [XmlArrayItem("Car", typeof(Car))]
  public Car[] Car { get; set; }
}

Форма

 private void Form1_Load(object sender, EventArgs e)
    {
        CarCollection cars = null;
        string path = "c://cars.xml";

        XmlSerializer serializer = new XmlSerializer(typeof(CarCollection));

        StreamReader reader = new StreamReader(path);
        cars = (CarCollection)serializer.Deserialize(reader);
        reader.Close();


        // finally bind the data to the grid
        dataGridView1.DataSource = cars;

    }

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

Чтобы заполнить сетку данных, вам нужно установить источник данных и затем получить данные (пример на MSDN показывает получение из базы данных, но источник xml не так уж отличается) . Не видя ваш код, я не уверен, но вы делаете второй шаг?

Этот ТАК должен решить вашу проблему.

0 голосов
/ 12 декабря 2011

извините, понял, я должен был сделать это:

 dataGridView1.DataSource = cars.Car;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...