2025-08-15 16:34:31 +08:00
|
|
|
|
using System;
|
|
|
|
|
using System.Windows.Input;
|
|
|
|
|
using Bricscad.ApplicationServices;
|
|
|
|
|
using Prism.Ioc;
|
2025-09-04 18:28:02 +08:00
|
|
|
|
using Prism.Services.Dialogs;
|
2025-08-15 16:34:31 +08:00
|
|
|
|
using SWS.CAD.Views;
|
2025-09-04 18:28:02 +08:00
|
|
|
|
using SWS.Commons;
|
2025-08-15 16:34:31 +08:00
|
|
|
|
using Telerik.Windows.Controls;
|
|
|
|
|
using Unity;
|
|
|
|
|
|
|
|
|
|
namespace SWS.CAD.ViewModels.myViewModelBase
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// abstract 不同于接口,可以实现具体的代码
|
|
|
|
|
/// </summary>
|
|
|
|
|
public abstract class DialogBase : ViewModelBase
|
|
|
|
|
{
|
|
|
|
|
public DialogBase()
|
|
|
|
|
{
|
|
|
|
|
_dialogService = GlobalObject._prismContainer.Resolve<IDialogService>();
|
|
|
|
|
window_loaded = new DelegateCommand(onWindow_loaded);
|
|
|
|
|
CloseCommand = new DelegateCommand(ExecuteCloseCommand);
|
|
|
|
|
OKCommand = new DelegateCommand(ExecuteOKCommandAsync);
|
|
|
|
|
if (GlobalObject.userInfo == null)
|
|
|
|
|
{
|
|
|
|
|
if (this is LoginViewModel)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
else if (this is ConfigViewModel)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//都需要额外先登录
|
|
|
|
|
var loginView = GlobalObject.container.Resolve<Login>();
|
|
|
|
|
//Application.ShowModalDialog(Application.MainWindow,);// 用来显示WinForms对话框
|
|
|
|
|
Application.ShowModalWindow(Application.MainWindow.Handle, loginView);//用来显示WPF的对话框,任务栏里可以看到2个Windows
|
|
|
|
|
|
2025-10-17 16:45:00 +08:00
|
|
|
|
|
2025-08-15 16:34:31 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (GlobalObject.curProject == null)
|
|
|
|
|
{
|
|
|
|
|
if (this is LoginViewModel)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
else if (this is ConfigViewModel)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
else if (this is ProjectViewModel)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//都需要额外先登录
|
|
|
|
|
var View = GlobalObject.container.Resolve<Project>();
|
|
|
|
|
//Application.ShowModalDialog(Application.MainWindow,);// 用来显示WinForms对话框
|
|
|
|
|
Application.ShowModalWindow(Application.MainWindow.Handle, View);//用来显示WPF的对话框,任务栏里可以看到2个Windows
|
|
|
|
|
|
|
|
|
|
//if (GlobalObject.userInfo == null)
|
|
|
|
|
//{
|
|
|
|
|
// CloseWindowAction?.Invoke();//依旧没登录上的话,放这里没用,因为这个时候,主体还没加载呢
|
|
|
|
|
//}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#region binding
|
|
|
|
|
private bool _isbusy;
|
|
|
|
|
|
|
|
|
|
public bool IsBusy
|
|
|
|
|
{
|
|
|
|
|
get { return _isbusy; }
|
|
|
|
|
set { _isbusy = value; RaisePropertyChanged(nameof(IsBusy)); }
|
|
|
|
|
}
|
|
|
|
|
private string _BusyContent;
|
|
|
|
|
|
|
|
|
|
public string BusyContent
|
|
|
|
|
{
|
|
|
|
|
get { return _BusyContent; }
|
|
|
|
|
set { _BusyContent = value; RaisePropertyChanged(nameof(BusyContent)); }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 加载后
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ICommand window_loaded { get; }
|
|
|
|
|
public ICommand CloseCommand { get; }
|
|
|
|
|
|
|
|
|
|
public ICommand OKCommand { get; }
|
|
|
|
|
private string _title;
|
|
|
|
|
|
|
|
|
|
public string title
|
|
|
|
|
{
|
|
|
|
|
get { return _title; }
|
|
|
|
|
set { _title = value; RaisePropertyChanged(nameof(title)); }
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
IUnityContainer _unityContainer;
|
|
|
|
|
public readonly IDialogService _dialogService;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// CODE-BEHAND里设置为this.close以关闭。调用时,.invoke即可
|
|
|
|
|
/// </summary>
|
|
|
|
|
public Action CloseWindowAction { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// virtual 可以重写
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="parameter"></param>
|
|
|
|
|
public virtual void ExecuteCloseCommand(object parameter)
|
|
|
|
|
{
|
|
|
|
|
// 关闭窗口 (需要通过 CommandParameter 传入窗口实例)
|
|
|
|
|
if (parameter is System.Windows.Window window)
|
|
|
|
|
{
|
|
|
|
|
window.Close();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public virtual void onWindow_loaded(object para)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
public virtual void ExecuteOKCommandAsync(object para)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|