Sau nhiều giờ tìm kiếm tôi vẫn không trả lời cho câu hỏi này. Tôi đã đọc điều này tốt đẹp writing về async MVVM và làm cho viewmodel của tôi để sử dụng phương pháp nhà máy.MVVM Cách đặt datacontext khi viewmodel sử dụng 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;
}
}
Điều này rõ ràng đối với tôi, nhưng tôi không thể hiểu cách tạo ví dụ của MainViewModel và đặt nó thành datacontext trong MainPage. Tôi không thể chỉ cần viết
<Page.DataContext>
<viewModel:MainViewModel/>
</Page.DataContext>
vì tôi nên sử dụng phương thức MainViewModel.CreateAsync(). Và tôi không thể làm điều đó trên code-behind, mà tôi thậm chí muốn làm, bởi vì code-behind -constructor là phương thức bình thường, không phải là một phương thức async. Vì vậy, đó là cách thích hợp để tiếp tục?
WP8.1! = WPF. Điều đáng tiếc hơn. Đây là thời điểm mong đợi ngày chúng tôi có thể đồng bộ hóa chúng. – Will