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"/>