0
У меня есть этот ViewModel с IDataErrorInfo:MetroWindow проверка текстового поля данных
string _name;
public string name
{
get { return this._name; }
set
{
if (Equals(value, _name))
{
return;
}
_name= value;
RaisePropertyChanged("Name");
}
}
private static readonly string[] ValidatedProperties = {"Name"};
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void RaisePropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
private string GetValidationError(string propertyName)
{
string error = null;
switch (propertyName)
{
case "Name":
if (this.Name == String.Empty)
{
return "Please enter a name";
}
break;
}
return error;
}
public string this[string columnName]
{
get { return GetValidationError(columnName); }
}
public bool IsValid
{
get
{
foreach (string property in ValidatedProperties)
{
if (GetValidationError(property) != null)
{
return false;
}
}
return true;
}
}
public string Error { get { return string.Empty; } }
Первоначальная проверка была целое число < 10, я просто изменил все в строку и сделали что-то неправильно, так как проверка имени не работает, и я не вижу проблемы. В текстовом поле:
<TextBox
Name="tekstas"
Controls:TextBoxHelper.Watermark="Please enter a name"
Text="{Binding Name,
ValidatesOnDataErrors=True,
UpdateSourceTrigger=PropertyChanged,
NotifyOnValidationError=True}"
Margin="104,197,47,104" />
В чем проблема?