1
當我的文本框爲空/空時,我需要顯示「必需的」。在WPF中顯示錯誤消息文本框
在我的XAML:
<TextBox Name="txtLastName" Grid.Column="1" Grid.Row="1" Margin="3">
<TextBox.Text>
<Binding Path="LastName">
<Binding.ValidationRules>
<validators:Contractor
MinimumLength="1"
MaximumLength="40"
ErrorMessage="Required" />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
在我的課:
public string LastName
{
get { return _lastName; }
set
{
_lastName = value;
NotifyPropertyChanged("LastName");
}
}
public event PropertyChangedEventHandler PropertyChanged;
private int _minimumLength = -1;
private int _maximumLength = -1;
private string _errorMessage;
public int MinimumLength
{
get { return _minimumLength; }
set { _minimumLength = value; }
}
public int MaximumLength
{
get { return _maximumLength; }
set { _maximumLength = value; }
}
public string ErrorMessage
{
get { return _errorMessage; }
set { _errorMessage = value; }
}
public override ValidationResult Validate(object value,CultureInfo cultureInfo)
{
ValidationResult result = new ValidationResult(true, null);
string inputString = (value ?? string.Empty).ToString();
if (inputString.Length < this.MinimumLength || value==null ||
(this.MaximumLength > 0 &&
inputString.Length > this.MaximumLength))
{
result = new ValidationResult(false, this.ErrorMessage);
}
return result;
}
private void NotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
我所得到的是文本框變成紅色邊框當數據爲空/空的,我無法看到「必需的」錯誤消息,有什麼想法?
謝謝,但它仍然沒有把消息,有什麼缺失?謝謝你的幫助。 – Sharpeye500 2012-02-17 00:02:58
當我調試我可以看到錯誤內容爲「必需」,但它不顯示在文本框的右側,只是在文本框單獨的紅色邊框。謝謝。 – Sharpeye500 2012-02-17 00:05:08
對不起,我忘了在'Validation.Errors'周圍放置括號,因爲它是附加屬性。我已經更新了上面的xaml。 – Terkel 2012-02-17 00:11:07