MMVM Light Использование WCF в асинхронном режиме - PullRequest
1 голос
/ 04 августа 2011

Что такое хорошая практика для внедрения MMVM с WCF Services?Модель View будет связываться с сервисом.Итак, скажем, в представлении у меня есть 3-4 модуля отображения данных.Вся эта информация для модулей поступает из разных сервисных вызовов WCF.Если я делаю это синхронно, у меня возникает ощущение, что для загрузки данных в модели представления потребуется время.

Я хочу выполнять вызовы для всех этих методов обслуживания асинхронно, не ожидая, пока первый вызов не вернется.Какой хороший способ сделать это?

1 Ответ

1 голос
/ 10 августа 2011

Я думаю, что лучший способ - вызвать службу асинхронно, а затем присвоить значение методу Complete, например:

 class TestViewModel : ViewModelBase
{
    private ObservableCollection<string> data;

    public ObservableCollection<string> Data
    {
        get { return data; }
        set
        {
            if (value == data) return;
            data = value;
            RaisePropertyChanged("Data");
        }
    }

    public TestViewModel()
    {
        GetDataClient proxy = new GetDataClient();

        System.EventHandler<GetDataCompletedEventArgs> Client_GetDataCompleted = null;
        Client_GetDataCompleted = (s, e) =>
        {
            if (e.Error == null && e.Result != null)
            {
                Data = new ObservableCollection<SelectionItem<string>>(e.Result));                    
            }

            proxy.GetDataCompleted -= Client_GetDataCompleted;
        };

        proxy.GetDataCompleted += Client_GetDataCompleted;            
        proxy.GetDataAsync();            
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...