2013-02-26 2 views
1

PropertyGrid를 serialize하고 결과를 XML 파일에 쓰려고합니다. 결국 XML 파일은 거의 비어 있습니다.
XML 파일
PropertyGrid (SerializeToXML)을 serialize하지 못했습니다.

<?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" /> 


내 코드; 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 뭐가 잘못 표시되지 않습니다 :

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; } 
    } 
} 


는 나에게 더 나은
언어를 수행하는 방법에있어 문제점은 무엇입니까. XML 직렬화가 정상입니다!

개체에 다른 데이터가 없기 때문에 MyBookCollection 노드 만 표시됩니다!

종류에 관해서는, 빔

+0

오브젝트 채우기 방법. PropertyGrid는 모든 데이터를 포함하고'SelectedObject'는'MyBookCollection'으로 설정됩니다. –