This is a migrated thread and some comments may be shown as answers.

Validation not working with RadComboBox

1 Answer 84 Views
ComboBox
This is a migrated thread and some comments may be shown as answers.
Victor
Top achievements
Rank 1
Victor asked on 02 Apr 2019, 10:59 PM

Hi, I created a Validation Class and I using with a RadComboBox that is populated by MySQL but the validation doesn't work. When I populate by RadComboBoxItem it's work.

Validation.cs:

namespace Drex.Classes
{
    public class Validations : ViewModelBase, IDataErrorInfo
    {
        private string _NumeroProcesso;
        private DateTime? _Data;
        private Double? _AreaTerreno;
        private string _Parametro;
        private string _Interessado;
        private string _Endereco;
        private string _AutorProjeto;
        private string _ARTAutorProjeto;
        private string _ResponsavelExecucao;
        private string _ARTResponsavelExecucao;
        private string _ResponsavelAnalise;

        public string NumeroProcesso
        {
            get { return _NumeroProcesso; }
            set { _NumeroProcesso = value; this.OnPropertyChanged("NumeroProcesso"); }
        }

        public DateTime? Data
        {
            get { return _Data; }
            set { _Data = value; this.OnPropertyChanged("Data"); }
        }

        public Double? AreaTerreno
        {
            get { return _AreaTerreno; }
            set { _AreaTerreno = value; this.OnPropertyChanged("AreaTerreno"); }
        }

        public string Parametro
        {
            get { return _Parametro; }
            set { _Parametro = value; this.OnPropertyChanged("Parametro"); }
        }

        public string Interessado
        {
            get { return _Interessado; }
            set { _Interessado = value; this.OnPropertyChanged("Interessado"); }
        }

        public string Endereco
        {
            get { return _Endereco; }
            set { _Endereco = value; this.OnPropertyChanged("Endereco"); }
        }

        public string AutorProjeto
        {
            get { return _AutorProjeto; }
            set { _AutorProjeto = value; this.OnPropertyChanged("AutorProjeto"); }
        }

        public string ARTAutorProjeto
        {
            get { return _ARTAutorProjeto; }
            set { _ARTAutorProjeto = value; this.OnPropertyChanged("ARTAutorProjeto"); }
        }

        public string ResponsavelExecucao
        {
            get { return _ResponsavelExecucao; }
            set { _ResponsavelExecucao = value; this.OnPropertyChanged("ResponsavelExecucao"); }
        }

        public string ARTResponsavelExecucao
        {
            get { return _ARTResponsavelExecucao; }
            set { _ARTResponsavelExecucao = value; this.OnPropertyChanged("ARTResponsavelExecucao"); }
        }

        public string ResponsavelAnalise
        {
            get { return _ResponsavelAnalise; }
            set { _ResponsavelAnalise = value; this.OnPropertyChanged("ResponsavelAnalise"); }
        }


        public Validations(Processo_Type items, bool _selected)
        {
            if (_selected)
            {
                NumeroProcesso = items.Numero;
                Data = items.Data;
                AreaTerreno = 10.2;
                Parametro = "";
                Interessado = items.Interessado;
                Endereco = items.Endereco;
                AutorProjeto = items.AutorProjeto;
                ARTAutorProjeto = items.ARTAutorProjeto;
                ResponsavelExecucao = items.ResponsavelExecucao;
                ARTResponsavelExecucao = items.ARTResponsavelExecucao;
                ResponsavelAnalise = items.ResponsavelAnalise;
            }
            else
            {
                NumeroProcesso = null;
                Data = null;
                AreaTerreno = 0.0;
                Parametro = null;
                Interessado = null;
                Endereco = null;
                AutorProjeto = null;
                ARTAutorProjeto = null;
                ResponsavelExecucao = null;
                ARTResponsavelExecucao = null;
                ResponsavelAnalise = null;
            }
        }

        public string this[string columnName]
        {
            get
            {
                Debug.WriteLine(columnName);
                if ("NumeroProcesso" == columnName)
                {
                    if (String.IsNullOrEmpty(NumeroProcesso))
                    {
                        return "Favor informar o número do processo";
                    }
                }

                if ("Data" == columnName)
                {
                    if (!_Data.HasValue)
                    {
                        return "Favor informar a data do processo";
                    }
                }

                if ("AreaTerreno" == columnName)
                {
                    if ((AreaTerreno == 0.0) || (!AreaTerreno.HasValue))
                    {
                        return "Favor informar o total da área do terreno";
                    }
                }

                if ("Parametro" == columnName)
                {
                    if (String.IsNullOrEmpty(Parametro))
                    {
                        return "Favor informar um parâmetro";
                    }
                }

                if ("Interessado" == columnName)
                {
                    if (String.IsNullOrEmpty(Interessado))
                    {
                        return "Favor informar o nome do interessado";
                    }
                }

                if ("Endereco" == columnName)
                {
                    if (String.IsNullOrEmpty(Endereco))
                    {
                        return "Favor informar o endereço do projeto";
                    }
                }

                if ("AutorProjeto" == columnName)
                {
                    if (String.IsNullOrEmpty(AutorProjeto))
                    {
                        return "Favor informar o nome do autor do projeto";
                    }
                }

                if ("ARTAutorProjeto" == columnName)
                {
                    if (String.IsNullOrEmpty(ARTAutorProjeto))
                    {
                        return "Favor informar a ART do autor do projeto";
                    }
                }

                if ("ResponsavelAnalise" == columnName)
                {
                    if (String.IsNullOrEmpty(ResponsavelAnalise))
                    {
                        return "Favor informar o nome do responsável pela análise";
                    }
                }

                return "";
            }
        }

        public string Error
        {
            get { throw new NotImplementedException(); }
        }
    }

}

 

 

.xaml:

                <telerik:RadComboBox Text="{Binding Parametro, Mode=TwoWay, ValidatesOnDataErrors=True, NotifyOnValidationError=True, ValidatesOnExceptions=True}"
                                     x:Name="Parametro"
                                     VerticalAlignment="Center"
                                     HorizontalAlignment="Stretch" 
                                     HorizontalContentAlignment="Left"
                                     EmptyText="[selecione um parâmetro]" 
                                     IsEditable="True" 
                                     IsReadOnly="True"
                                     DataContext="{StaticResource Parametro_Call}" 
                                     ItemsSource="{Binding Parametros}"
                                     DisplayMemberPath="Parametro" 
                                     SelectedValuePath="IDParametro"/>

 

 

 

1 Answer, 1 is accepted

Sort by
0
Dinko
Telerik team
answered on 05 Apr 2019, 11:23 AM
Hi Victor,

Thank you for the provided code snippet. Still, may I ask you to share little more information about your project set up. How is this Validations class used in your application?

What comes up to my mind is that the DataContext of the Text property is the Parametro_Call.  So the validation property should be declared in this class. I have prepared a sample project to demonstrate this. Give it a try and let me know if I was able to help you with this case.

Regards,
Dinko
Progress Telerik
Get quickly onboarded and successful with your Telerik and/or Kendo UI products with the Virtual Classroom free technical training, available to all active customers. Learn More.
Tags
ComboBox
Asked by
Victor
Top achievements
Rank 1
Answers by
Dinko
Telerik team
Share this question
or