首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IDataErrorInfo不工作

IDataErrorInfo不工作
EN

Stack Overflow用户
提问于 2013-11-28 03:01:03
回答 1查看 268关注 0票数 1

我想让textbox的边框是红色的,并且在它下面有另一个textbox来显示错误。

C#

代码语言:javascript
复制
 class BandsVM : ObservableObject, IPage, IDataErrorInfo
    {

        [Required(ErrorMessage = "De naam is verplicht")]
        [RegularExpression(@"^[a-zA-Z''-'\s]{1,40}$", ErrorMessage = "Er zijn geen speciale tekens toegelaten")]
        [StringLength(50, MinimumLength = 1, ErrorMessage = "De naam moet tussen de 1 en 50 karakters bevatten ")]
        private string insertName;
        public string InsertName
        {
            get { return insertName;  }
            set { insertName = value; }
        }

XAML:

代码语言:javascript
复制
<TextBox Validation.ErrorTemplate="{StaticResource ErrorTemplate}" Text="{Binding InsertName, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource TextboxError}"/>
EN

回答 1

Stack Overflow用户

发布于 2013-11-28 03:10:58

因为你继承自ObservableObject,我假设它实现了INotifyPropertyChanged

属性InsertName应调用PropertyChanged事件处理程序,以通知wpf绑定引擎评估属性更改。这将调用您的this[]索引,IDataErrorInfo使用该索引来评估验证错误。

将您的属性更改为:

代码语言:javascript
复制
public string InsertName
{
    get { return insertName;  }
    set { 
        if (value != insertname)
        {
            insertName = value; 
        }

        OnPropertyChanged(() => InsertName);
        // or OnPropertyChanged("InsertName");
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20250869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档