2010-01-18 20 views
26

Estoy tratando de usar en WPF una entrada de validación de controles de datos con reglas de validación. En el código detrás de archivo de una ventana de WPF tengo una clase:¿Cómo declarar un espacio de nombres en WPF XAML?

public class posintValidationRule : ValidationRule 
{ 
    public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo) 
    { 
     string _strInt = value.ToString(); 
     int _int = -1; 
     if (!Int32.TryParse(_strInt, out _int)) 
      return new ValidationResult(false, "Value must be an integer"); 
     if (_int < 0) 
      return new ValidationResult(false, "Value must be positive"); 
     return new ValidationResult(true, null); 
    } 
} 

en XAML también hay una plantilla de error del estilo.

Cuando pongo un cuadro de texto con la validación en XAML:

<TextBox.Text> 
    <Binding Path="seconds" UpdateSourceTrigger="PropertyChanged"> 
     <Binding.ValidationRules> 
      <local:posintValidationRule/> 
     </Binding.ValidationRules> 
    </Binding> 
</TextBox.Text> 

me sale un error de compilación tiempo: '' local 'es un espacio de nombres no declarado'. XML no es válido

¿Cómo debo declarar local:posintValidationRule en mi XAML?

Respuesta

51

En la parte superior de su archivo XAML, necesita declarar cuál es su espacio de nombres "local"; junto con las cosas predeterminadas de Microsoft XAML. Algo como esto:

xmlns:local="clr-namespace:YourApplication" 

Nota esto supone que "posintValidationRule" se define en el espacio de nombres raíz en "YourApplication".

Cuestiones relacionadas