Press "Enter" to skip to content

No jak to nie da się asynchronicznie w konstruktorze

A no nie da, ale na stack overflow znaleźli obejście. Całkiem zjadliwe

public class ViewModel       
{       
    public ObservableCollection Data { get; set; }       

    //static async method that behave like a constructor       
    async public static Task BuildViewModelAsync()  
    {       
        ObservableCollection tmpData = await GetDataTask();  
        return new ViewModel(tmpData);
    }       

    // private constructor called by the async method
    private ViewModel(ObservableCollection Data)
    {
        this.Data = Data;   
    }
}  

Zostawiam, bo pewnie nie raz mi się jeszcze przyda.