Это было сложно, но у меня есть решение всех моих вопросов!
вот решение:
В первый раз ComboBox XAML должен выглядеть так:
<ComboBox MinWidth="75" IsEditable="True"
IsSynchronizedWithCurrentItem="False"
ItemsSource="{Binding Path=Element[etat].Elements[option]}"
DisplayMemberPath="Attribute[valeur].Value"
Text="{Binding Element[etat].Attribute[valeur].Value, UpdateSourceTrigger=PropertyChanged}"
/>
Это ответ на вопрос 1 и 2: поскольку мы фокусируемся на значении атрибута "valeur" узла, который содержит, мы можем написать то, что хотим, даже если значение, которое мы пишем, отсутствует вколлекция, и проблема отображения узлов в тексте ComboBox исчезла!
По вопросу 3 моя ошибка в том, что я сфокусировался на наблюдаемой коллекции!
Но решение простоеЯ прикрепил событие «Изменено» к XDocument, который содержит все элементы XE, которыми я управляю здесь!
Итак, я поместил этот код в главное окно моего программного обеспечения:
private void InitPerso()
{
xDoc = XDocument.Load(@"C:\fichier.xml");
xDoc .Changed += new EventHandler<XObjectChangeEventArgs>(XDoc_Changed);
}
private void XEdls_Changed(object sender, XObjectChangeEventArgs e)
{
xDoc .Save(@"C:\fichier.xml");
}
Etвуаля!
Извините за плохой английский, надеюсь, это поможет ...