2013-02-26 3 views
1

Я пытаюсь сериализовать PropertyGrid и записывать результаты в файл XML. В конце XML-файл почти пуст;
XML файл
Не удалось выполнить сериализацию PropertyGrid (SerializeToXML)

<?xml version="1.0" encoding="utf-8"?> 
<MyBookCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /> 


Мой код;

private void btnSave_Click(object sender, EventArgs e) 
{ 
    MyBookCollection MyBooks = new MyBookCollection(); 

    SerializeToXML(MyBooks); 
} 

public void SerializeToXML(MyBookCollection MyBooks) 
{ 
    XmlSerializer serializer = new XmlSerializer(typeof(MyBookCollection)); 
    TextWriter textWriter = new StreamWriter(@"D:\BookInfo.xml"); 
    serializer.Serialize(textWriter, MyBooks); 
    textWriter.Close(); 
} 
} 

[Serializable] 
public class MyBookCollection 
{ 
    string m_Title; 
    [Category("Book Titles")] 
    [ReadOnly(true)] 
    public string Title 
    { 
     get { return m_Title; } 
     set { m_Caption = Title; } 
    } 
} 


Что не так или как сделать это лучше
Язык: C#

+0

Как написано в коде, btnSave_Click() просто создает и сериализует пустой объект MyBookCollection? – Larry

+0

Да. См. Также комментарий ниже. –

ответ

1

Вы пытались получить свойство .SelectedObject этот путь?

private void btnSave_Click(object sender, EventArgs e) 
{ 
    var MyBooks = myProertyGrid.SelectedObject as MyBookCollection; 
    SerializeToXML(MyBooks); 
} 

PropertyGrid, к сожалению, не связывает изменения свойств.

+0

хороший. Это трюк! Полезен и принял ваш ответ. –

0

Я не понимаю, что случилось с XML. Ваша сериализация XML в порядке!

Вы видите только ваш узел MyBookCollection, потому что в объекте нет других данных!

С наилучшими пожеланиями, Wim

+0

Как получить объект заполнен. Свойство PropertyGrid содержит все данные, а 'SelectedObject' -' MyBookCollection'. –

Смежные вопросы