public void Init(
            CAffectationsProprietes affectations,
            IFournisseurProprietesDynamiques fournisseur,
            Type typeElementModifie,
            CObjetPourSousProprietes objetSource)
        {
            ArrayList lstControles = new ArrayList(m_panelControles.Controls);

            foreach (Control ctrl in lstControles)
            {
                ctrl.Visible = false;
                m_panelControles.Controls.Remove(ctrl);
                ctrl.Dispose();
            }
            CDefinitionProprieteDynamique[] defs = fournisseur.GetDefinitionsChamps(typeElementModifie, 0);
            m_panelControles.SuspendDrawing();
            List <CDefinitionProprieteDynamique> lstDefs = new List <CDefinitionProprieteDynamique>(defs);

            lstDefs.Sort((x, y) => x.Nom.CompareTo(y.Nom));
            foreach (CDefinitionProprieteDynamique def in lstDefs)
            {
                if (!def.IsReadOnly)
                {
                    CPanelAffectationPropriete panel = new CPanelAffectationPropriete();
                    panel.Dock = DockStyle.Top;
                    m_panelControles.Controls.Add(panel);
                    C2iExpression formule = affectations.GetFormuleFor(def);
                    panel.Init(def, formule, fournisseur, objetSource);
                    m_panelControles.BringToFront();
                }
            }
            m_panelControles.ResumeDrawing();
        }
        public CAffectationsProprietes GetAffectations()
        {
            CAffectationsProprietes affectation = new CAffectationsProprietes();

            foreach (Control ctrl in m_panelControles.Controls)
            {
                CPanelAffectationPropriete panel = ctrl as CPanelAffectationPropriete;
                if (panel != null)
                {
                    affectation.SetAffectation(panel.Propriete, panel.Formule);
                }
            }
            return(affectation);
        }