我尝试在模型中找到一个结果为布尔值的方法,用于自定义验证!
[CustomValidation(typeof(SpecialValidator), "IsUniQueCountryCode")]
必须同步才能使方法具有结果值:
public static ValidationResult IsUniQueCountryCode(string value) {
if (value.Length > 0)
{
DSCountry _context = new DSCountry();
ObservableCollection<MCountry> List = new ObservableCollection<MCountry>();
LoadOperation<Country> loadOp = _context.Load((_context.GetCountryByCodeQuery(value)).Where(s => s.ISOCode == value));
IEnumerable<Country> Entities;
bool test = false;
loadOp.Completed += (s, e) =>
{
test = true;
};
//
if (test == true)
{
}
//
}
return ValidationResult.Success;
}
如何使负载同步?
答案 0 :(得分:2)
Silverlight不支持同步服务调用。因此,除非您想使用非常难看的黑客(请参阅下面的链接),您需要在应用程序启动时预加载该信息,或者找到以异步方式重写它的方法。
http://www.codeproject.com/KB/silverlight/SynchronousSilverlight.aspx
哦,验证程序应该非常非常快。他们可能随时被召唤,通常没有明显的理由,所以在他们内部打电话是个坏主意。