首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制IDataErrorInfo验证

强制IDataErrorInfo验证
EN

Stack Overflow用户
提问于 2012-11-14 20:03:21
回答 2查看 10.4K关注 0票数 15

我在一些面板上有两个控件: textbox和combobox:

代码语言:javascript
复制
<TextBox Text="{Binding ShapeName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" />

<ComboBox SelectedItem="{Binding ActiveStageViewModel, Mode=OneWayToSource, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" />

当我在combobox上选择一些东西时,我需要强制对textbox进行idataerrorinfo验证。如何做到这一点?

viewmodel中的代码:

代码语言:javascript
复制
string IDataErrorInfo.this[string propertyName]
    {
      get
      {
        var error = string.Empty;

        if (propertyName == Expression.GetPropertyName(() => ActiveStageViewModel))
        {
          // TODO: Add functionality to force ShapeName property validation
          return error;
        }

        if (propertyName == Expression.GetPropertyName(() => ShapeName))
        {
          error = ValidateShapeName();
        }

        TooltipMessage = error;
        return error;
      }
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-14 20:33:52

只需为您想要验证的属性引发NotifyPropertyChanged事件,或者如果您使用的是Silverlight4.5或.NET 4,则使用INotityDataErrorInfo

票数 23
EN

Stack Overflow用户

发布于 2012-11-14 22:15:10

还值得记住的是,您可以使用String.Empty属性引发NotifyPropertyChanged。这将强制对该级别的所有属性进行验证。有时会很有用。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13378474

复制
相关文章

相似问题

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