none
Opcion de "IsNotchecked" silverlight al seleccionar un check box RRS feed

  • Pregunta

  • Hola 

    En mi código tengo la opción de que al seleccionar un check box ciertos controles se coloquen habilitados como lo indico en este código en el archivos XAML

                <TextBox Grid.Row="8" Grid.Column="1" Name="DiasAtraso" HorizontalAlignment="Left"
                         IsEnabled="{Binding ElementName=cbAgregarManual, Path=IsChecked }" 
                         VerticalAlignment="Center" Margin="10,1,0,1" Height="26" Width="100" 
                         
                     StringFormat=\{0\}}" TextAlignment="Right" MaxLength="2" IsReadOnly="False" />

    Existe una opción contraria como  IsEnabled="{Binding ElementName=cbAgregarManual, Path=IsNotChecked }" ??

    NOTA: estoy con el patron MVVM pero no deseo hacerlo con el patron ya que son 3 controles nada mas!


    lunes, 20 de enero de 2020 18:26

Respuestas

Todas las respuestas

  • hola

    Podrias aplicar el negado de la propiedad

    how to "!" in a binding in xaml

    veo hay varias formas de lograrlo, podria ser con un converter

    O quizas podrias mapear el IsCheckd del checkbox a una propiedad del ViewModel y despues en lugar de bindear el Element en el textbox usas esa propiedad pero aplicando el negado

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 20 de enero de 2020 19:01
  • @leandroTuttini 

    En el negado de la propiedad binding no entendi.... es colocar el signo admiración y entre parentesis?

    IsEnabled="{!(Binding ElementName=cbAgregarManual, Path=IsChecked) }" 

    Aun asi me sale error en el código, Estoy Trabajando Con SilverLight 5, no se si esta funcionalidad aplique ese carácter.

    Creando la propiedad en ViewModel no me fue bien ya que utilice el de esta respuesta  utilice la que es con el check y no el enabled

    public bool Check1
    {
        get { return _check1; }
        set
        {
            if (value == _check1) return;
            _check1 = value;
            RaisePropertyChanged("Check1");
        }
    }
    private bool _check1;

    lunes, 20 de enero de 2020 19:49
  • hola

    >>es colocar el signo admiración y entre parentesis?

    no eso no funciona

    revisaste las respuestas que se dieron en el link, hay varias alternativas

    >>utilice la que es con el check y no el enabled

    son dos parte

    una implica bindear el IsChecked a una propiedad para que al marcar la asigne a esa propiedad del viewmodel

    la otra seria negar la propiedad anterior en una nueva propiedad y bindearla al textbox en el IsEnabled

    public clas xxViewModel{
    
        public bool CheckBoxChecked{get;set;}
    
        public bool TextBoxHabilitado {get { return !CheckBoxChecked; }}
    
    }


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    • Editado Leandro TuttiniMVP lunes, 20 de enero de 2020 20:01
    • Marcado como respuesta greg_dorian miércoles, 22 de enero de 2020 16:04
    • Desmarcado como respuesta greg_dorian viernes, 24 de enero de 2020 14:19
    lunes, 20 de enero de 2020 20:00
  • >>utilice la que es con el check y no el enabled

    son dos parte

    una implica bindear el IsChecked a una propiedad para que al marcar la asigne a esa propiedad del viewmodel

    la otra seria negar la propiedad anterior en una nueva propiedad y bindearla al textbox en el IsEnabled

    public clas xxViewModel{
    
        public bool CheckBoxChecked{get;set;}
    
        public bool TextBoxHabilitado {get { return !CheckBoxChecked; }}
    
    }


    y en el XAML como se debe llamar?  porque lo tomo asi..    IsEnabled="{Binding ElementName=cbAgregarManual,  Path=TextBoxHabilitado}"

    y así no me funciona!!

    en una respuestas del link que colocaste existe una opcion IsEnabled="{Binding IsLoggingIn, Converter={StaticResource InverseBoolConverter}} 

    Pero me sale error en StaticResource

     
    viernes, 24 de enero de 2020 14:26
  • hola

    >>en el XAML como se debe llamar?

    Lo llamas con un binding

    IsEnabled="{Binding Path=NombrePropViewModel}"

    entiendo estas aplicando el patron MVVM

    MVVM Made Simple

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta greg_dorian miércoles, 29 de enero de 2020 19:13
    viernes, 24 de enero de 2020 14:49
  • Deleted
    viernes, 24 de enero de 2020 17:23