Silverlight Sync

时间:2011-02-13 06:46:51

标签: silverlight silverlight-4.0 asynchronous

我尝试在模型中找到一个结果为布尔值的方法,用于自定义验证

[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;
}

如何使负载同步

1 个答案:

答案 0 :(得分:2)

Silverlight不支持同步服务调用。因此,除非您想使用非常难看的黑客(请参阅下面的链接),您需要在应用程序启动时预加载该信息,或者找到以异步方式重写它的方法。

http://www.codeproject.com/KB/silverlight/SynchronousSilverlight.aspx

哦,验证程序应该非常非常快。他们可能随时被召唤,通常没有明显的理由,所以在他们内部打电话是个坏主意。