コード例 #1
0
        private static void ConfigReplaced(object sender, ConfigReplacedEventArgs e)
        {
            // Pour chaque fenêtre à laquelle est associée la Config sender, enlevons l'ancienne
            // Config et insérons la nouvelle.

            // il y a moyen de faire ça avec Linq, mais j'ai la flemme de chercher
            List <object> foundWins = new List <Object>();

            foreach (KeyValuePair <Object, Config> kvp in theConfs)
            {
                if (object.ReferenceEquals(kvp.Value, sender))
                {
                    foundWins.Add(kvp.Key);
                }
            }

            foreach (Object win in foundWins)
            {
                theConfs.Remove(win);
                theConfs.Add(win, e.newConfig);
            }

            // Désinscrivons cette méthode de l'évèenemnt sur l'ancienne Config
            // et inscrivons-la sur la nouvelle.
            Config oldConf = (Config)sender;

            oldConf.ConfigReplacedEvent     -= ConfigReplaced;
            e.newConfig.ConfigReplacedEvent += ConfigReplaced;
        }
コード例 #2
0
 private void SubConfig2Replaced(object sender, ConfigReplacedEventArgs e)
 {
     logger.ConditionalDebug("SubConfig2Replaced");
     subConfig2.ConfigReplacedEvent -= SubConfig2Replaced;
     subConfig2 = e.newConfig;
     subConfig2.IsSubConfig(2);
     subConfig2.ConfigReplacedEvent += SubConfig2Replaced;
 }