在Silverlight 4-MVVM中触发自定义验证时静态类属性变为NULL

在Silverlight 4-MVVM中触发自定义验证时静态类属性变为NULL,mvvm,silverlight-4.0,properties,customvalidator,static-class,Mvvm,Silverlight 4.0,Properties,Customvalidator,Static Class,1。我创建了包含静态类和属性的测试类。 namespace QSys.Data.Domain.DataSecurity { public static class TestData { public static string MyName { get; set; } } } 2。客户模型类别和自定义验证 namespace QSys.Data.Domain { [Serializable()] public class Customer

1。我创建了包含静态类和属性的测试类。

namespace QSys.Data.Domain.DataSecurity
{
    public static class TestData
    {
        public static string MyName { get; set; }
    }
}
2。客户模型类别和自定义验证

namespace QSys.Data.Domain
{
    [Serializable()]
    public class Customer
    {
        [Key]
        public virtual int Id { get; set; }
        [CustomValidation(typeof(CustomerRequiredRules), "IsCompanyNameEmpty")]
        public virtual string CompanyName { get; set; }
        public virtual string City { get; set; }
    }

    public class CustomerRequiredRules
    {
        public static ValidationResult IsCompanyNameEmpty(string CompanyName, ValidationContext context)
        {
            if (TestData.MyName == "Imdadhusen")
            {
                return new ValidationResult("Company name not allowed!", new string[] { "CompanyName" });
            }
            return ValidationResult.Success;
        }
    }
}
3。静态类的设置值,如

public class AdminHomeViewModel 
{
   public AdminHomeViewModel()
   {
        TestData.MyName = "Imdadhusen";
   }
}
4。我点击提交按钮,我的自定义验证被触发,在这里我无法获得
TestData.MyName的值。它将显示Null而不是Imdadhusen。

namespace QSys.Data.Domain.DataSecurity
{
    public static class TestData
    {
        public static string MyName { get; set; }
    }
}
任何回答、建议或评论都将不胜感激

谢谢,
Imdadhusen

我不是Silverlight专家。只是因为一个小时后没有答案。当我有这样的“静态成员忘记值”效果时,它们是在不同测试之间的NUnit测试中,或者设置和获取在不同的AppDomain中。我不确定,但您是否应该使用方法中的companyName属性而不是TestData类,或者这只是一个输入错误。另外,如果您想在属性MyName上进行customvalidation,那么您不应该在该属性上方进行注释吗