This filter calls a given Predicate to decide if a model object should be included
Наследование: IModelFilter
Пример #1
0
        private void Filtrar(IList lista)
        {
            if (lista == null || lista.Count == 0)
            {
                this.tlvPresupuestos.ModelFilter = null;
                this.tlvPresupuestos.CollapseAll();
            }
            else
            {
                List<odts.PresupuestoVentaBloque> filtrados = new List<odts.PresupuestoVentaBloque>();
                foreach (object o in lista)
                {
                    if (o is Almacen.odts.ArticuloModelo)
                    {
                        filtrados.AddRange(GetBloquesQueContienen((o as Almacen.odts.ArticuloModelo).ArtiId1));
                    }
                    else if (o is Almacen.odts.ArticuloDeterminacion)
                    {
                        filtrados.AddRange(GetBloquesQueContienen((o as Almacen.odts.ArticuloDeterminacion).ArtiId1));
                    }
                }

                BrightIdeasSoftware.IModelFilter filter = new BrightIdeasSoftware.ModelFilter(delegate(object x)
                {
                    if (x is odts.PresupuestoVentaBloque)
                    {                       
                        if (filtrados.Contains((odts.PresupuestoVentaBloque)x))
                        {
                            return true;
                        }
                        else
                            return false;
                    }
                    else if (x is odts.PresupuestoVentaDetalle)
                    {
                        object padre = this.tlvPresupuestos.GetParent(x);
                        if (padre is odts.DetalleModelo)
                        {
                            object abuelo = this.tlvPresupuestos.GetParent(padre);
                            if (filtrados.Contains((odts.PresupuestoVentaBloque)abuelo))
                                return true;
                        }
                        else
                        {
                            if (filtrados.Contains((odts.PresupuestoVentaBloque)padre))
                                return true;
                        }
                        return false;
                    }
                   
                    return false;

                });
                this.tlvPresupuestos.ModelFilter = filter;
               
            }
        }
Пример #2
0
 // Filtra las determinaciones utilizando el cuadro de texto de búsqueda
 private void txtDeterminacion_TextChanged(object sender, EventArgs e)
 {
     BrightIdeasSoftware.IModelFilter filter = new BrightIdeasSoftware.ModelFilter(delegate(object x)
     {
         string artiDescripcion = Utilidades.UtilsBD.RemoveDiacriticos(((Almacen.odts.ArticuloDeterminacion)x).Descripcion).ToUpper();
         string texto = Utilidades.UtilsBD.RemoveDiacriticos(txtDeterminacion.Text).ToUpper();
         return artiDescripcion.Contains(texto);
     });
     this.folvDeterminaciones.ModelFilter = filter;
 }