Как привязать конкретную десериализованную из структуры класса XML к Treeview
Я хочу сделать приложение, которое десериализовало данные из моего файла XML в структуру класса. Я подготовил классы с помощью инструмента «Вставить XML как классы», однако все было сделано на общих полях или таблицах, и когда я попытался изменить его на List или ObservableCollections, сериализатор перестал правильно загружать документ XML.
Далее я хочу выбрать из дерева, например, какой-нибудь элемент, отредактировать его и снова сохранить в XML-файл. Я не хочу делать это на .xml напрямую. это образец моего XML:
<plan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema.xsd">
<nagłówek>
<autorzy>
<nazwa>Autorzy:</nazwa>
<autor atr="one">
<numer>222</numer>
<imię>Rust</imię>
<nazwisko>Snow</nazwisko>
</autor>
<autor>
<numer>111</numer>
<imię>Ian</imię>
<nazwisko>Nower</nazwisko>
</autor>
</autorzy>
</nagłówek>
...
Вот пример занятий
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public partial class plan
{
private planNagłówek nagłówekField;
private planGłówny głównyField;
/// <remarks/>
public planNagłówek nagłówek
{
get
{
return this.nagłówekField;
}
set
{
this.nagłówekField = value;
}
}
/// <remarks/>
public planGłówny główny
{
get
{
return this.głównyField;
}
set
{
this.głównyField = value;
}
}
}
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class planNagłówek
{
private planNagłówekAutorzy autorzyField;
/// <remarks/>
public planNagłówekAutorzy autorzy
{
get
{
return this.autorzyField;
}
set
{
this.autorzyField = value;
}
}
}
и как я загружаю XML:
// Create an instance of the XmlSerializer specifying type and namespace.
XmlSerializer serializer = new XmlSerializer(typeof(XML.plan));
// A FileStream is needed to read the XML document.
FileStream fs = new FileStream("...somepath.../Untitled4.xml", FileMode.Open);
XmlReader reader = XmlReader.Create(fs);
// Use the Deserialize method to restore the object's state.
i = (XML.plan)serializer.Deserialize(reader);
fs.Close();
Вот что у меня есть, плюс мой XML-файл, возможно, это поможет вам помочь мне :)https://drive.google.com/file/d/0B0wPodV30rnJSVA1ckVxWldDRDA/view