2009-11-14 8 views
5

¿Cómo puedo establecer una expresión regular en WPF TextBox? Quiero que el cuadro de texto acepte entradas en algún formato predefinido. ¿Es posible?¿Cómo puedo establecer la expresión regular en TextBox?

+2

Hola, por favor, echar un vistazo a la respuesta de esta pregunta. Parece ser exactamente lo que necesita: http://stackoverflow.com/questions/1103765/wpf-textbox-how-to-define-some-restriction – andyp

Respuesta

7

tiene varias opciones:

  • Puede crear una subclase ValidationRule (véase más adelante) y agregarlo a su propiedad de unión validadores
  • Se puede establecer un ValidationCallback en su propiedad encuadernado, una excepción si el valor es incorrecto, y use this technique para mostrar fácilmente errores de validación
  • Puede crear una propiedad adjunta que registre un controlador de eventos para la propiedad TextBox.TextChanged e implemente su propio mecanismo de notificación de error de validación
  • Puede utilizar un cuadro de texto normal con un controlador TextBox_Changed en código detrás
  • Puede manejar PreviewKeyDown y PreviewTextInput de una propiedad adjunta como se muestra here
  • Puede utilizar un masked text box como se ha mencionado por Jan

Para expresiones arbitrarias En general, usaría las funciones de validación integradas de WPF o realizaría la validación en la propiedad vinculada. Para necesidades específicas, el cuadro de texto PreviewKeyDown/PreviewTextInput o enmascarado podría ser mejor.

Aquí es cómo se crearía una subclase ReglaDeValidación:

public class RegexValidationRule : ValidationRule 
{ 
    ... // Declare Regex property and Message property 

    public override ValidationResult Validate(object value, CultureInfo cultureInfo) 
    { 
    if(Regex.IsMatch((string)value)) 
     return ValidationResult.ValidResult; 
    else 
     return new ValidationResult(false, Message); 
    } 
} 
0

O puede consultar el evento modificado o puede usar lo que se denomina cuadro de texto enmascarado.

+0

no puedo ver el cuadro de texto enmascarado en wpf – viky

+1

Ver http://stackoverflow.com/questions/481059/where-can-i-find-a-free-masked-textbox-in-wpf –

Cuestiones relacionadas