WPF高度部分MVVM(MVVMlight)依存性注入メッセージボックス

オリジナル: WPFは、一部MVVM(MVVMlight)依存性の注入メッセージボックスを高度な

MVVMlight依存性注入機能及び弾性インタフェース機能ブロックは、それぞれのプラグインに注入されます

すべての依存性注入のViewModelは、最初の登録MVVMlight SimpleIocを達成するために容器に登録されています


  
  
  1. public ViewModelLocator()
  2. {
  3. SimpleIoc.Default.Register<MainViewModel>();
  4. SimpleIoc.Default.Register<EditBookViewModel>();
  5. SimpleIoc.Default.Register<IDialogService, DialogService>();
  6. }
  7. private MainViewModel mainViewModel ;
  8. public MainViewModel MainViewModel
  9. {
  10. get { return mainViewModel = SimpleIoc.Default.GetInstance<MainViewModel>(Guid.NewGuid().ToString()); }
  11. set { mainViewModel = value; }
  12. }
  13. private EditBookViewModel editBookViewModel ;
  14. public EditBookViewModel EditBookViewModel
  15. {
  16. get { return editBookViewModel = SimpleIoc.Default.GetInstance<EditBookViewModel>(Guid.NewGuid().ToString()); }
  17. set { editBookViewModel = value; }
  18. }

メッセージインタフェース


  
  
  1. public interface IDialogService
  2. {
  3. void ShowMessage(string message, string title = "提示");
  4. bool Confirm(string message, string title = "询问");
  5. }

実装クラス


  
  
  1. public class DialogService: IDialogService
  2. {
  3. public void ShowMessage(string message, string title = "提示")
  4. {
  5. MessageBox.Show(message, title, MessageBoxButton.OK, MessageBoxImage.Information);
  6. }
  7. public bool Confirm(string message, string title = "询问")
  8. {
  9. var result = MessageBox.Show(message, title, MessageBoxButton.OKCancel, MessageBoxImage.Question);
  10. if (result == MessageBoxResult.OK)
  11. {
  12. return true;
  13. }
  14. else
  15. {
  16. return false;
  17. }
  18. }
  19. }

各ビューモデルのために定義されたインタフェースオブジェクトのコンストラクタ

 


  
  
  1. public EditBookViewModel(IDialogService dialogService)
  2. {
  3. DialogService = dialogService;
  4. }
  5. private IDialogService dialogService;
  6. public IDialogService DialogService
  7. {
  8. get { return dialogService; }
  9. set { dialogService = value; }
  10. }

 

そして、使用

  DialogService.ShowMessage(EditBookArgs.IsEdit ? "编辑成功" : "新增成功");
 
 

 

おすすめ

転載: www.cnblogs.com/lonelyxmas/p/12075815.html