none
Duda con validaterule RRS feed

  • Pregunta

  • Hola,

    tengo una clase genérica que valida formularios y es la que uso en Binding.ValidationRules tal que así:

    <Binding.ValidationRules >
    <c:formValidate Objeto="???" />
    </Binding.ValidationRules>

    El tema es que no se como pasar la instancia en la que estoy trabajando como parámetro( objeto ) para que esa clase llame un métiodo que tengo sobrecargado. esto es un ejemplo:

    class checkBase { public virtual void check(ref bool res, ref string respuesta) { res = true; respuesta = ""; } }

    class checkA : checkBase, INotifyPropertyChanged, IValueConverter { private string _test; public string Test { get { return _test; } set { if (value != _test) { _test = value; OnPropertyChanged("Test"); } }

            public override void check(ref bool res, ref string respuest)
            {
                res = false;
                respuest = "test";
            }

    }

    la clase que llama a check, si recibo la instancia de la clase como parámetro del objeto puedo llamar al método check que interesa:

    class formValidate : ValidationRule

    { private checkBase _obj; public checkBase Objet { get { return _obj; } set { _obj = value; } } public override ValidationResult Validate(object value, CultureInfo cultureInfo) { bool res = false; string respuest = "" ; this._obj.check(ref res,ref respuest); return new ValidationResult(res,respuest); } }

    jueves, 18 de octubre de 2012 6:37

Todas las respuestas

  • Si en lugar de usar validate rule, uso IDataErrorInfo en el mismo contexto que trabajo funciona solo en el caso de que modifique una variable declarada en la clase si por el contrarios tengo un ojeto dento tal que asi:

    clas ...

    {

    private objeto test = new objeto();

    public Test {

    get;

    set;

    }

    }

    y en el binding pongo como path Test.nombre. no recibo eventos

    jueves, 18 de octubre de 2012 7:52
  • Saludos lo mejor es utilizar IdataErrorInfo pero la interfaz debe ser implementada en la clase también y por ende todos los métodos de validación para los atributos de la clase

    Americo

    viernes, 19 de octubre de 2012 14:51