¿Cuál es la forma más simple en WPF de habilitar un Button
cuando el usuario escribe algo en un TextBox
?Cómo habilitar un botón cuando un usuario escribe en un cuadro de texto
Respuesta
utilizar el comando simple
<TextBox Text={Binding Path=TitleText}/>
<Button Command="{Binding Path=ClearTextCommand}" Content="Clear Text"/>
Aquí está el código de ejemplo en la vista del modelo
public class MyViewModel : INotifyPropertyChanged
{
public ICommand ClearTextCommand { get; private set; }
private string _titleText;
public string TitleText
{
get { return _titleText; }
set
{
if (value == _titleText)
return;
_titleText = value;
this.OnPropertyChanged("TitleText");
}
}
public MyViewModel()
{
ClearTextCommand = new SimpleCommand
{
ExecuteDelegate = x => TitleText="",
CanExecuteDelegate = x => TitleText.Length > 0
};
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = this.PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
Para obtener más información, véase Marlon Grechs SimpleCommand
También puedes ver la plantilla de proyecto MVVM/Toolkit de http://blogs.msdn.com/llobo/archive/2009/05/01/download-m-v-vm-project-template-toolkit.aspx. Utiliza DelegateCommand para comando y debería ser una excelente plantilla de inicio para cualquier proyecto.
Agregue una devolución de llamada al TextBox que se activa en cada trazo. Prueba de vacío en dicha devolución de llamada y habilita/deshabilita el botón.
SI no estaba usando comandos, otra alternativa es usar un convertidor.
Por ejemplo, el uso de un Int genérico para Bool convertidor:
[ValueConversion(typeof(int), typeof(bool))]
public class IntToBoolConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
try
{
return (System.Convert.ToInt32(value) > 0);
}
catch (InvalidCastException)
{
return DependencyProperty.UnsetValue;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return System.Convert.ToBoolean(value) ? 1 : 0;
}
#endregion
}
A continuación, en los botones de propiedad IsEnabled:
<Button IsEnabled={Binding ElementName=TextBoxName, Path=Text.Length, Converter={StaticResource IntToBoolConverter}}/>
HTH,
Dennis
Usar un disparador !
<TextBox x:Name="txt_Titel />
<Button Content="Transfer" d:IsLocked="True">
<Button.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=txt_Titel, Path=Text}" Value="">
<Setter Property="Button.IsEnabled" Value="false"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
¿Por qué todos hacen las cosas tan complicadas?
<TextBox x:Name="TB"/>
<Button IsEnabled="{Binding ElementName=TB,Path=Text.Length}">Test</Button>
Nada más se necesita ......
La clave en esto es en la unión en sí ..
Añadir UpdateSourceTrigger = PropertyChanged
esto es la solución más simple
- 1. Incluir un botón en un cuadro de texto
- 2. Jquery: cómo desencadenar un evento cuando el usuario borra un cuadro de texto
- 3. jQuery: Hacer que un botón sea visible cuando un cuadro de texto tiene contenido
- 4. cómo deshabilitar/habilitar un botón por jquery
- 5. ¿Cómo puedo desactivar un botón en un cuadro de diálogo de la interfaz de usuario jQuery?
- 6. Obtener texto cuando se presiona intro en un cuadro de texto en wxPython
- 7. ¿Cómo agrego texto a la ubicación del cursor de un usuario en un cuadro de texto enriquecido en C#?
- 8. Viendo resultado en un cuadro de texto en un botón de clic (ASP.Net)
- 9. Ctrl + C en un cuadro de texto
- 10. ¿Puedo cancelar la devolución de datos cuando el usuario presiona regresar en un cuadro de texto?
- 11. ¿Cómo colocar un cuadro de texto líquido/elástico al lado de un botón?
- 12. ¿Es posible hacer clic en un botón sin perder el foco en un cuadro de texto?
- 13. Cómo hacer un texto en negrita en un cuadro de texto enriquecido C#
- 14. Usando jQuery, oculte un cuadro de texto si se selecciona un botón de radio
- 15. Ocultar en el teclado iOS cuando el usuario hace clic fuera de un cuadro de texto
- 16. NSUndoManager y habilitar/deshabilitar un botón deshacer
- 17. ¿Cómo configuro el ancho de un cuadro de texto cuando edito una fila en un GridView?
- 18. cómo configurar un texto en un texto de edición que está en un cuadro de diálogo?
- 19. WPF: texto de sugerencia automática a medida que una persona escribe en un control de cuadro de texto
- 20. ¿Cómo solicito un valor en un cuadro de texto en un cuadro de diálogo personalizado de Wix?
- 21. Cómo permitir que un usuario escriba en un cuadro combinado
- 22. Valores máximos y mínimos en un cuadro de texto
- 23. javascript - desenfocar un cuadro de texto
- 24. Cómo manejar el 'botón de retroceso' en Android cuando aparece un cuadro de diálogo de progreso
- 25. Botón Habilitar basado en el valor del Cuadro de texto (WPF)
- 26. ¿Cómo se muestra la carga de la ruleta en un cuadro de texto al hacer clic en un botón?
- 27. ¿Cómo estirar texto en un botón cuadrado?
- 28. MVVM- ¿Cómo puedo seleccionar texto en un cuadro de texto?
- 29. Insertar pestañas en un cuadro de texto
- 30. ¿Cómo destaco el texto en un cuadro de texto en un programa C# Winforms?
+1 simple y de trabajo - gracias! –
¡U, ser, eres un genio! –
Desearía poder votar esto más – cppguy