• Martes 21 de Abril de 2026, 11:48

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Radamantis86

Páginas: [1]
1
C# / Re: Clonar una coleccion
« en: Lunes 11 de Enero de 2010, 19:13 »
Muchas gracias por tu respuesta, me sirvió de mucho :D

2
C# / Clonar una coleccion
« en: Sábado 9 de Enero de 2010, 00:17 »
Que tal tengo poco codificando en  C# y quisiera saber como poder clonar una colección  ya que mi problema radica en que al enviarla a un formulario diferente lo que modifique en dicho formulario afecta directamente a mi colección ya que esto se hace por referencia. aki unos fragmentos de codigo antes de enviar la coleccion al formulario:

 if (ctlgrdPartidasentrada.CurrentCell.OwningColumn.Name == "pMedidasPartida")
            {
                if (ctlgrdPartidasentrada.CurrentRow != null)
                {
                    if (this.CrudAction == eCRUDAction.Read ||      this.PrincipalObject[ctlgrdTarjasEntrada.CurrentRow.Index].pListaPartidas[e.RowIndex].pMedidasPartida.Count <= 0)
                    {
                        if (this.PrincipalObject[ctlgrdTarjasEntrada.CurrentRow.Index].pListaPartidas[e.RowIndex].pMedidasPartida_Trash.Count <= 0)
                             //Cargo las Medidas de la partida
                            CargarMedidasPartidasTarja(PrincipalObject[ctlgrdTarjasEntrada.CurrentRow.Index].pListaPartidas[e.RowIndex]);
                    }
                    frmMedidasPartidaTarja ofrm = new
                   //Aqui envio mi coleccion de pMedidasPartida
frmMedidasPartidaTarja(PrincipalObject[ctlgrdTarjasEntrada.CurrentRow.Index].pListaPartidas[e.RowIndex].pMedidasPartida, this.CrudAction);
                    ofrm.ShowInTaskbar = false;
                    ofrm.StartPosition = FormStartPosition.CenterScreen;
                   

                    if (ofrm.ShowDialog(this) == DialogResult.OK)
                    {
                       //En esta parte deberia asignar la coleccion modificada en el formulario al objeto principal
                        PrincipalObject[ctlgrdTarjasEntrada.CurrentRow.Index].pListaPartidas[e.RowIndex].pMedidasPartida = ofrm.MedidasPartida;
                        if (ofrm.MedidasPartida_Trash.Count > 0)
                            PrincipalObject[ctlgrdTarjasEntrada.CurrentRow.Index].pListaPartidas[e.RowIndex].pMedidasPartida_Trash = ofrm.MedidasPartida_Trash;

                    }
                }
            }



Parte del Codigo del Formulario:

       #region Campos
       
        GColeccion<MedidasPartidaTarja> _MedidasPartida;
        GColeccion<MedidasPartidaTarja> _MedidasPartida_Trash;
        eCRUDAction CrudAction = eCRUDAction.Read;
        #endregion

        #region Propiedades
        public GColeccion<MedidasPartidaTarja> MedidasPartida
        {
            get { if (_MedidasPartida == null) _MedidasPartida = new GColeccion<MedidasPartidaTarja>(); return _MedidasPartida; }
            set { _MedidasPartida = value;  }
        }
        public GColeccion<MedidasPartidaTarja> MedidasPartida_Trash
        {
            get { if (_MedidasPartida_Trash == null) _MedidasPartida_Trash = new GColeccion<MedidasPartidaTarja>(); return _MedidasPartida_Trash; }
            set { _MedidasPartida_Trash = value; }
        }
        #endregion

 public frmMedidasPartidaTarja(GColeccion<MedidasPartidaTarja> value, eCRUDAction _crudValue)
        {
            InitializeComponent();
            InitializeClass();
            this.CrudAction = _crudValue;
           //Aqui asigno la coleccion que recibo, "MedidasPartidas" esta declarada localmente aun asi todo lo que le modifique afecta directamente a mi coleccion       principal
            MedidasPartida = value;
         
            SetEnabledControl();
            SetGridColums();
            SetDataSource();
        }
-------------------------------------------------------------------------------------------------
Nacesito saber como afectar a MedidasPartida sin que se refleje en el objeto principal, de antemano gracias por sus apoyo

Páginas: [1]