MVVMlight依存性注入機能及び弾性インタフェース機能ブロックは、それぞれのプラグインに注入されます
すべての依存性注入のViewModelは、最初の登録MVVMlight SimpleIocを達成するために容器に登録されています
-
-
public ViewModelLocator()
-
{
-
SimpleIoc.Default.Register<MainViewModel>();
-
SimpleIoc.Default.Register<EditBookViewModel>();
-
SimpleIoc.Default.Register<IDialogService, DialogService>();
-
}
-
-
-
private MainViewModel mainViewModel ;
-
-
public MainViewModel MainViewModel
-
{
-
get {
return mainViewModel = SimpleIoc.Default.GetInstance<MainViewModel>(Guid.NewGuid().ToString()); }
-
set { mainViewModel =
value; }
-
-
}
-
-
private EditBookViewModel editBookViewModel ;
-
-
public EditBookViewModel EditBookViewModel
-
{
-
get {
return editBookViewModel = SimpleIoc.Default.GetInstance<EditBookViewModel>(Guid.NewGuid().ToString()); }
-
set { editBookViewModel =
value; }
-
}
メッセージインタフェース
-
public
interface
IDialogService
-
{
-
void ShowMessage(string message, string title = "提示");
-
bool Confirm(string message, string title = "询问");
-
}
実装クラス
-
public
class
DialogService:
IDialogService
-
{
-
public void ShowMessage(string message, string title = "提示")
-
{
-
MessageBox.Show(message, title, MessageBoxButton.OK, MessageBoxImage.Information);
-
}
-
-
public bool Confirm(string message, string title = "询问")
-
{
-
var result = MessageBox.Show(message, title, MessageBoxButton.OKCancel, MessageBoxImage.Question);
-
if (result == MessageBoxResult.OK)
-
{
-
return
true;
-
}
-
else
-
{
-
return
false;
-
}
-
}
-
}
各ビューモデルのために定義されたインタフェースオブジェクトのコンストラクタ
-
public EditBookViewModel(IDialogService dialogService)
-
{
-
-
DialogService = dialogService;
-
}
-
private IDialogService dialogService;
-
-
public IDialogService DialogService
-
{
-
get {
return dialogService; }
-
set { dialogService =
value; }
-
}
そして、使用
DialogService.ShowMessage(EditBookArgs.IsEdit ? "编辑成功" : "新增成功");