私はXamarin.FormsとWPF(このように:https://github.com/C0D3Name/XamFormsWpf)とMVVMライトを組み合わせて動作するクロスプラットフォームアプリケーションを作ろうとしています。MVVM Light for XamarinフォームとWPF
MVVM Lightは私には新しく、私は何をしたいのか明確なチュートリアルは見つかりませんでした。 Xamarin.Forms上でDependencyInjectionが行われます
SQLiteConnection database = DependencyService.Get<ISQLite>().GetConnection("db.sqlite");
これはMVVMのライトでどのように行われますか? ISQLite
の異なるプラットフォーム実装をパラメータとして渡す必要がありますか?
私はすでに私のPCLでViewModelLocator
を作成しました:
public class ViewModelLocator
{
/// <summary>
/// Register all the used ViewModels, Services et. al. witht the IoC Container
/// </summary>
public ViewModelLocator()
{
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
SimpleIoc.Default.Register<MainViewModel>();
// My DataService is using the connection from ISQlite
SimpleIoc.Default.Register<IDataService, DataService>();
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance",
"CA1822:MarkMembersAsStatic",
Justification = "This non-static member is needed for data binding purposes.")]
public MainViewModel Main
{
get
{
return ServiceLocator.Current.GetInstance<MainViewModel>();
}
}
}
public interface ISQLite
{
SQLiteConnection GetConnection(string sqliteFilename);
}
は、私の知る限りSimpleIoc
を理解できるように、私は具体的な実装にインターフェイスを登録する必要がありますが、どのように私のDataServiceは正しいISQLite
実装について知っているん?
私の質問が分かりやすいと思います。公式ドキュメントから