none
class Task Generic RRS feed

  • Pregunta

  • Hola a todos necesito una ayudita con una clase que estoy haciendo y talvez me pueden ayudar con alguna idea,

    El objetivo es q cuando yo en el constructor le paso el enumerador uno o dos, entre a un in y se puedan declarar las variables deseadas con get and set para q el data grid donde voy a cargar la lista de tipo Task solo se muestren las variables del tipo del enumerador nada mas pero mi roblema es xq siempre me asoman todas las variables en el data grid y no encuentro forma de solucionar este problema , lo unico que he estado haciendo hasta ahora es datagrid.columns[0].visibility = visibility,collasep;

    pero no es una buena estrategia porque en la actualidad cuando agrego un campo mas en el Task me toca ir a todas las ventanas donde estoy usando esta estructura para ocultarlas, ese es mi problema espero me puedan ayudar....

    public class APPTaskPrueba : INotifyPropertyChanged
        {

    public enum AppNameScreen
            {
                [Description("Uno")]
                APPFormUno,
                [Description("Dos")]
                APPFormDos
            }

            private bool _isExpanded = true;

            [Display(AutoGenerateField = false)]
            public int Id { get; set; }
            [Display(AutoGenerateField = false)]
            public string Node { get; set; }
            [Display(AutoGenerateField = false)]
            public string Parent { get; set; }

            public string Descripcion { get; set; }

           AppNameScreen _AppNameScreen;

    #if APPFormUno == FormParent
            public string DatoUno{ get; set; }
    #endif
    #if APPFormDos== _AppNameScreen
            public bool DatoDos{ get; set; }
            public bool DatoTres{ get; set; }
            public bool DatoCuatro{ get; set; }
            public bool DatoCinco{ get; set; }
    #endif

            public APPTaskPrueba(AppNameScreen _AppNameScreen
            {
                SubTasks = new List<APPTaskPrueba>();
                IsExpanded = true;

                this._AppNameScreen = _AppNameScreen;

            }      

            public event PropertyChangedEventHandler PropertyChanged;

        }

    martes, 11 de septiembre de 2012 14:51

Todas las respuestas

  • Estimado,

    en lo que respecta a la visibilidad puedes hacer un Binding sobre la propiedad Visibility de las columnas y pasarle un valor,  luego implementado una clase convertidora, definir que criterios utilizar para dejarla Visible o Invisible, aqui agrego un ejemplo de esto:

    C#

        public class TakeVisibilityValueConverters : IValueConverter
        {
    
            public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                Estado estado = (Estado)value;
    
                if (state == Estado.EsVisible)
                    return Visibility.Visible;
                return Visibility.Collapsed;
            }
    
            public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                throw new NotImplementedException();
            }
        }

    XAML

    xmlns:vsb="clr-namespace:SilverSCGR.Helpers.TakeVisibilityValueConverters"

    <navigation:Page.Resources> <vsb:TakeVisibilityValueConverters x:Key="TakeVisibility" /> </navigation:Page.Resources> <HyperlinkButton Content="Ejemplo" Visibility="{Binding Estado, Converter={StaticResource TakeVisibility}}" />

    Espero que te sirva,

    Saludos


    • Editado Eduhart miércoles, 12 de septiembre de 2012 14:31 Falto agregar espacio de nombre
    miércoles, 12 de septiembre de 2012 14:30
  • Eduhart gracias por tu respuesta,

    Aun no lo pruebo pero quisiera saber si este ejemplo me sirve para mostrar unicamente las variables que he declarado dentro del if del enumerador escogido, no creo q me supe explicar anteriormente pero lo q necesito es q no ignore el if y me cree las variables q deseo dentro de esta clase Task, porque no me es muy util estar ocultando las columnas q no se necesitan, xq cuando deseo agregar una columna nueva en un formulario deseado tengo q volver a los formularios hechos anteriormente para ocultar est campo, y es x eso q necesito otra solucion.

    Ahora si lo q me estas proponiendo es algo como esto te ruego me expliques un poco mas acerca de los metodos que tienes dentro de la clase TakeVisibilityValueConverters,

    miércoles, 12 de septiembre de 2012 21:46