Dopo ore di ricerca, sono ancora senza risposta a questa domanda. Ho letto questo bel writing su MVVM asincrono e ho reso il mio viewmodel utilizzare il metodo factory.MVVM Come impostare datacontext quando viewmodel utilizza async
public class MainViewModel
{
// sic - public, contrary to the pattern in the article I cite
// so I can create it in the Xaml as below
public MainViewModel()
{
}
private async Task InitializeAsync()
{
await DoSomethingAsync();
}
public static async Task<MainViewModel> CreateAsync()
{
var ret = new MainViewModel();
await ret.InitializeAsync();
return ret;
}
}
Questo è chiaro per me, ma non riesco a capire come fare istanza di MainViewModel e impostarlo su DataContext in MainPage. Non posso semplicemente scrivere
<Page.DataContext>
<viewModel:MainViewModel/>
</Page.DataContext>
perché dovrei usare MainViewModel.CreateAsync() - metodo. E non posso farlo su code-behind, che voglio anche fare, perché il code-behind -constructor è un metodo normale, non un metodo asincrono. Quindi quale è il modo corretto di continuare?
WP8.1! = WPF. Più è il peccato. Non vediamo l'ora che arrivino i giorni in cui possiamo sincronizzarli. – Will