internal void HandleWindowMessage(WindowActionMessage <LoaderViewModel> message) { if (this.CheckAccess() == false) { Dispatcher.Invoke(new Action(() => HandleWindowMessage(message))); return; } switch (message.Action) { case WindowActionType.Close: this.Close(); break; case WindowActionType.Hide: this.Hide(); break; case WindowActionType.Show: this.Show(); break; case WindowActionType.SetMain: Application.Current.MainWindow = this; break; } }
public void HandleWindowMessage <TVM, TWIN>(WindowActionMessage <TVM> message) where TVM : ViewModelBase where TWIN : Window { switch (message.Action) { case WindowActionType.Create: CreateWindow <TWIN>(); break; } }
internal void HandleWindowMessage(WindowActionMessage<MainViewModel> message) { if (this.CheckAccess() == false) { Dispatcher.Invoke(new Action(() => HandleWindowMessage(message))); return; } switch (message.Action) { case WindowActionType.Close: this.Close(); break; case WindowActionType.Show: this.Show(); break; case WindowActionType.SetMain: Application.Current.MainWindow = this; break; } }
/// <summary> /// バインド先の Window を非同期でアクティブにします。 /// </summary> /// <param name="self">ViewModel</param> /// <returns></returns> public async static Task ActiveAsync(this ViewModel self) { var mes = new WindowActionMessage(WindowAction.Active, "ActiveAsync"); await self.Messenger.RaiseAsync(mes); }
/// <summary> /// バインド先の Window をアクティブにします。 /// </summary> /// <param name="self">ViewModel</param> public static void Active(this ViewModel self) { var mes = new WindowActionMessage(WindowAction.Active, "Active"); self.Messenger.Raise(mes); }
/// <summary> /// バインド先の Window を最小化します。 /// </summary> /// <param name="self">ViewModel</param> public static void Minimize(this ViewModel self) { var mes = new WindowActionMessage(WindowAction.Minimize, "Minimize"); self.Messenger.Raise(mes); }