摆脱VS2010-Silverlight5中的设计时ArgumentNullException警告

时间:2012-07-01 16:21:22

标签: visual-studio-2010 silverlight-5.0 design-time

我有一个执行基于异常的数据验证的Silverlight表单。我学会了如何通过以下方式进行数据验证:

将控件设置为验证如下:

<TextBox Text="{Binding Mode=TwoWay,NotifyOnValidationError=True, Source={StaticResource docSan}, Path= metadati.paziente.residenza, ValidatesOnExceptions=True}"/>

使目标属性如下工作

public new string residenza
    {
        get { return base.residenza; }
        set
        {
            if (string.IsNullOrEmpty(value)) throw new ArgumentNullException("value");
            base.residenza = value;
        }
    }

基类以INotifyPropertyChanged方式定义非验证属性

不幸的是,VS2010在设计时警告我每个文本框的异常。这并不妨碍应用程序运行(它可以正常运行精细),但这只是烦人的。

有人知道如何告诉VS,如果在设计时没有指定值,那么代码会自然抛出吗?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,那么设置器中的if ... throw语句会导致设计器中出现警告吗?

我认为您可以使用DesignerProperties.IsInDesignTool来阻止此行在设计时运行:

set
{
    if (!System.ComponentModel.DesignerProperties.IsInDesignTool)
    {
        if (string.IsNullOrEmpty(value)) throw new ArgumentNullException("value");
    }
    base.residenza = value;
}