2009-12-17 6 views
1

Je crée une fenêtre dans WPF. Le constructeur prend un "paramètres ref XmlElement" qui est utilisé pour afficher des informations dans cette fenêtre.WPF: copie de XmlElement

Dans le constructeur, je clone ces paramètres:

_ClonedSettings = (XmlElement)settings.Clone(); 

et je garde un pointeur sur les paramètres d'origine:

_OriginalSettings = paramètres;

L'interface utilisateur modifie _ClonedSettings. Ensuite, si l'utilisateur clique sur le bouton OK, je souhaite remplacer les paramètres d'origine par _ClonedSettings, afin que le créateur de la fenêtre obtienne les bonnes valeurs.

Comment effectuer cette opération de copie finale?

Répondre

1

Ne pas utiliser de ref. Il suffit de définir les paramètres en tant que propriété publique sur la fenêtre

public class SettingsEditor : Window 
{ 
    public XmlElement Settings {get;set;} 
    /*...*/ 
} 

Dans la fenêtre, mettez à jour les paramètres et procédez comme vous l'avez fait. Une fois la fenêtre affichée, sortez les paramètres.

/*...*/ 
var editor = new SettingsEditor { Settings = settings }; 
editor.ShowDialog(); 
settings = editor.Settings; 
/*...*/ 

Vous pouvez également définir une DialogResult sur votre fenêtre pour voir ce qui est arrivé avec l'éditeur ...

Questions connexes