Procházet zdrojové kódy

修改了部分界面代码

luo před 9 měsíci
rodič
revize
1aeb167c01

+ 11 - 0
ShakerControl/ViewModel/Log/LogViewModel.cs

@@ -42,4 +42,15 @@ namespace ShakerControl.ViewModel.Log
         public ObservableCollection<LogItemViewModel> Logs { get; } = new ObservableCollection<LogItemViewModel>();
         public override Type View { get; } = typeof(View.Log.LogView);
     }
+    internal class LogItemViewModel : ViewModelBase<LogModel>
+    {
+        public LogItemViewModel(LogModel model)
+        {
+            UpDateModel(model);
+        }
+        public DateTime DateTime => Model.DateTime;
+        public string Message => Model.Message;
+        public LogType LogType => Model.LogType;
+
+    }
 }

+ 2 - 0
ShakerManger/App.xaml

@@ -49,6 +49,8 @@
             <convert:EnumToCollectionConverter x:Key="EnumToCollectionConverter" />
             <convert:OxyPlotColorToSolidBrushConverter x:Key="OxyPlotColorToSolidBrushConverter" />
             <vm:ColorPickerViewModel x:Key="ColorPicker" />
+            <vm:BindingProxy x:Key="Prompt" Data="{x:Static vm:PromptViewModel.Default}" />
+            <vm:BindingProxy x:Key="Login" Data="{x:Static vm:LoginViewModel.Default}" />
             <convert:EnumToDescription x:Key="EnumToDescription" />
             <convert:SilderDoubleConverter x:Key="SilderDoubleConverter" />
             <ControlTemplate x:Key="ComboBoxTemplate1" TargetType="ComboBox">

+ 52 - 29
ShakerManger/MainWindow.xaml

@@ -3,6 +3,7 @@
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:data="clr-namespace:ShakerManger.Data"
     xmlns:hc="https://handyorg.github.io/handycontrol"
     xmlns:local="clr-namespace:ShakerManger"
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
@@ -198,7 +199,7 @@
                             Padding="0"
                             hc:IconElement.Geometry="{StaticResource StartGeometry}"
                             Command="{Binding StartAllCommand}"
-                            IsEnabled="{Binding Source={StaticResource MainViewModel}, Path=Data.Login.IsAnonymous, Converter={StaticResource Boolean2BooleanReConverter}}"
+                            IsEnabled="{Binding Source={StaticResource Login}, Path=Data.IsAnonymous, Converter={StaticResource Boolean2BooleanReConverter}}"
                             Style="{StaticResource ImageButton}"
                             ToolTip="全部开始" />
                         <Button
@@ -207,7 +208,7 @@
                             Padding="0"
                             hc:IconElement.Geometry="{StaticResource StopGeometry}"
                             Command="{Binding StopAllCommand}"
-                            IsEnabled="{Binding Source={StaticResource MainViewModel}, Path=Data.Login.IsAnonymous, Converter={StaticResource Boolean2BooleanReConverter}}"
+                            IsEnabled="{Binding Source={StaticResource Login}, Path=Data.IsAnonymous, Converter={StaticResource Boolean2BooleanReConverter}}"
                             Style="{StaticResource ImageButton}"
                             ToolTip="全部停止" />
                     </UniformGrid>
@@ -229,7 +230,7 @@
                                             <MultiDataTrigger>
                                                 <MultiDataTrigger.Conditions>
                                                     <Condition Binding="{Binding IsEnabled}" Value="True" />
-                                                    <Condition Binding="{Binding Source={StaticResource MainViewModel}, Path=Data.Login.IsAnonymous}" Value="False" />
+                                                    <Condition Binding="{Binding Source={StaticResource Login}, Path=Data.IsAnonymous}" Value="False" />
                                                 </MultiDataTrigger.Conditions>
                                                 <Setter Property="IsEnabled" Value="True" />
                                             </MultiDataTrigger>
@@ -237,21 +238,21 @@
                                             <MultiDataTrigger>
                                                 <MultiDataTrigger.Conditions>
                                                     <Condition Binding="{Binding IsEnabled}" Value="False" />
-                                                    <Condition Binding="{Binding Source={StaticResource MainViewModel}, Path=Data.Login.IsAnonymous}" Value="False" />
+                                                    <Condition Binding="{Binding Source={StaticResource Login}, Path=Data.IsAnonymous}" Value="False" />
                                                 </MultiDataTrigger.Conditions>
                                                 <Setter Property="IsEnabled" Value="False" />
                                             </MultiDataTrigger>
                                             <MultiDataTrigger>
                                                 <MultiDataTrigger.Conditions>
                                                     <Condition Binding="{Binding IsEnabled}" Value="False" />
-                                                    <Condition Binding="{Binding Source={StaticResource MainViewModel}, Path=Data.Login.IsAnonymous}" Value="True" />
+                                                    <Condition Binding="{Binding Source={StaticResource Login}, Path=Data.IsAnonymous}" Value="True" />
                                                 </MultiDataTrigger.Conditions>
                                                 <Setter Property="IsEnabled" Value="False" />
                                             </MultiDataTrigger>
                                             <MultiDataTrigger>
                                                 <MultiDataTrigger.Conditions>
                                                     <Condition Binding="{Binding IsEnabled}" Value="True" />
-                                                    <Condition Binding="{Binding Source={StaticResource MainViewModel}, Path=Data.Login.IsAnonymous}" Value="True" />
+                                                    <Condition Binding="{Binding Source={StaticResource Login}, Path=Data.IsAnonymous}" Value="True" />
                                                 </MultiDataTrigger.Conditions>
                                                 <Setter Property="IsEnabled" Value="False" />
                                             </MultiDataTrigger>
@@ -304,8 +305,28 @@
                             hc:IconElement.Geometry="{StaticResource LayoutGeometry}"
                             Background="{StaticResource TitleBackColor}"
                             Cursor="Hand"
-                            IsEnabled="{Binding LayoutVisibily}"
-                            Style="{StaticResource ImageButton}">
+                            IsEnabled="{Binding LayoutVisibily}">
+                            <Button.Style>
+                                <Style TargetType="Button" BasedOn="{StaticResource ImageButton}">
+                                    <Style.Triggers>
+                                        <DataTrigger Binding="{Binding CurrentMainPage.MainPageType}" Value="{x:Static data:MainPageType.ShakerManger}">
+                                            <Setter Property="Visibility" Value="Visible" />
+                                        </DataTrigger>
+                                        <DataTrigger Binding="{Binding CurrentMainPage.MainPageType}" Value="{x:Static data:MainPageType.ConfigManger}">
+                                            <Setter Property="Visibility" Value="Collapsed" />
+                                        </DataTrigger>
+                                        <DataTrigger Binding="{Binding CurrentMainPage.MainPageType}" Value="{x:Static data:MainPageType.DataManger}">
+                                            <Setter Property="Visibility" Value="Collapsed" />
+                                        </DataTrigger>
+                                        <DataTrigger Binding="{Binding CurrentMainPage.MainPageType}" Value="{x:Static data:MainPageType.LogManger}">
+                                            <Setter Property="Visibility" Value="Collapsed" />
+                                        </DataTrigger>
+                                        <DataTrigger Binding="{Binding CurrentMainPage.MainPageType}" Value="{x:Static data:MainPageType.WarnManger}">
+                                            <Setter Property="Visibility" Value="Collapsed" />
+                                        </DataTrigger>
+                                    </Style.Triggers>
+                                </Style>
+                            </Button.Style>
                             <hc:Interaction.Triggers>
                                 <hc:EventTrigger EventName="Click">
                                     <hc:SetPropertyAction
@@ -387,8 +408,9 @@
                 Grid.Row="0"
                 Grid.RowSpan="2"
                 Grid.ColumnSpan="2"
+                DataContext="{Binding Source={StaticResource Prompt}, Path=Data}"
                 Dock="Top"
-                IsOpen="{Binding Prompt.IsOpen}">
+                IsOpen="{Binding IsOpen}">
                 <Border
                     Width="{x:Static SystemParameters.PrimaryScreenWidth}"
                     Height="{x:Static SystemParameters.PrimaryScreenHeight}"
@@ -414,7 +436,7 @@
                                     FontSize="32"
                                     FontWeight="Bold"
                                     Foreground="White"
-                                    Text="{Binding Prompt.Title}" />
+                                    Text="{Binding Title}" />
                             </Border>
                             <StackPanel
                                 Grid.Row="1"
@@ -429,8 +451,8 @@
                                     Height="60"
                                     HorizontalAlignment="Center"
                                     VerticalAlignment="Center"
-                                    Visibility="{Binding Prompt.IconVisibility}">
-                                    <Path Data="{Binding Prompt.IconGeometry, Mode=OneWay}" Fill="{Binding Prompt.IconBrush}" />
+                                    Visibility="{Binding IconVisibility}">
+                                    <Path Data="{Binding IconGeometry, Mode=OneWay}" Fill="{Binding IconBrush}" />
                                 </Viewbox>
                                 <TextBlock
                                     Grid.Row="1"
@@ -441,7 +463,7 @@
                                     VerticalAlignment="Center"
                                     FontSize="20"
                                     Foreground="White"
-                                    Text="{Binding Prompt.Message}"
+                                    Text="{Binding Message}"
                                     TextWrapping="Wrap" />
                             </StackPanel>
                             <StackPanel
@@ -453,22 +475,22 @@
                                 <Button
                                     Width="88"
                                     Height="38"
-                                    Command="{Binding Prompt.YesCommand}"
-                                    Content="{Binding Prompt.YesText}"
+                                    Command="{Binding YesCommand}"
+                                    Content="{Binding YesText}"
                                     Cursor="Hand"
                                     FontSize="16"
-                                    ToolTip="{Binding Prompt.YesText}"
-                                    Visibility="{Binding Prompt.YesVisibility}" />
+                                    ToolTip="{Binding YesText}"
+                                    Visibility="{Binding YesVisibility}" />
                                 <Button
                                     Width="88"
                                     Height="38"
                                     Margin="40,0,0,0"
-                                    Command="{Binding Prompt.NoCommand}"
-                                    Content="{Binding Prompt.NoText}"
+                                    Command="{Binding NoCommand}"
+                                    Content="{Binding NoText}"
                                     Cursor="Hand"
                                     FontSize="16"
-                                    ToolTip="{Binding Prompt.NoText}"
-                                    Visibility="{Binding Prompt.NoVisibility}" />
+                                    ToolTip="{Binding NoText}"
+                                    Visibility="{Binding NoVisibility}" />
 
                             </StackPanel>
                         </Grid>
@@ -479,8 +501,9 @@
                 Grid.Row="0"
                 Grid.RowSpan="2"
                 Grid.ColumnSpan="2"
+                DataContext="{Binding Source={StaticResource Login}, Path=Data}"
                 Dock="Top"
-                IsOpen="{Binding Login.IsLoggedIn, Converter={StaticResource Boolean2BooleanReConverter}}">
+                IsOpen="{Binding IsLoggedIn, Converter={StaticResource Boolean2BooleanReConverter}}">
                 <Grid
                     Width="{x:Static SystemParameters.PrimaryScreenWidth}"
                     Height="{x:Static SystemParameters.PrimaryScreenHeight}"
@@ -540,7 +563,7 @@
                                     Foreground="Black"
                                     InputScope="AlphanumericHalfWidth"
                                     MaxLength="20"
-                                    Text="{Binding Login.UserName}"
+                                    Text="{Binding UserName}"
                                     Watermark="输入用户名" />
                             </StackPanel>
                             <StackPanel
@@ -568,16 +591,16 @@
                                     IsSafeEnabled="False"
                                     MaxLength="20"
                                     ShowEyeButton="True"
-                                    UnsafePassword="{Binding Login.PassWord}">
+                                    UnsafePassword="{Binding PassWord}">
                                     <hc:PasswordBox.InputBindings>
-                                        <KeyBinding Key="Enter" Command="{Binding Login.LoginCommand}" />
+                                        <KeyBinding Key="Enter" Command="{Binding LoginCommand}" />
                                     </hc:PasswordBox.InputBindings>
                                 </hc:PasswordBox>
                             </StackPanel>
                             <TextBlock
                                 Grid.Row="3"
                                 Foreground="Red"
-                                Text="{Binding Login.Message}" />
+                                Text="{Binding Message}" />
                             <StackPanel
                                 Grid.Row="4"
                                 HorizontalAlignment="Center"
@@ -586,7 +609,7 @@
                                 <Button
                                     Width="120"
                                     Height="36"
-                                    Command="{Binding Login.LoginCommand}"
+                                    Command="{Binding LoginCommand}"
                                     Content="登录"
                                     Cursor="Hand"
                                     FontSize="16"
@@ -595,7 +618,7 @@
                                     Width="120"
                                     Height="36"
                                     Margin="40,0,0,0"
-                                    Command="{Binding ShutDownCommand}"
+                                    Command="{Binding Source={StaticResource MainViewModel}, Path=Data.ShutDownCommand}"
                                     Content="退出"
                                     Cursor="Hand"
                                     FontSize="16"
@@ -608,7 +631,7 @@
                         HorizontalAlignment="Right"
                         VerticalAlignment="Bottom"
                         BorderThickness="0"
-                        Command="{Binding Login.AnonymousLoginCommand}"
+                        Command="{Binding Source={StaticResource Login}, Path=Data.AnonymousLoginCommand}"
                         Content="匿名登录"
                         FontSize="22"
                         Foreground="Blue"

+ 10 - 10
ShakerManger/ViewModel/DataMangerViewModel.cs

@@ -92,26 +92,26 @@ namespace ShakerManger.ViewModel
             var shaker = MainWindowViewModel.Default.Shakers.Shakers.FirstOrDefault(x => x.Model.Id == SelectedShaker);
             if(shaker==null)
             {
-                MainWindowViewModel.Default.Prompt.Init();
-                MainWindowViewModel.Default.Prompt.NoVisibility = System.Windows.Visibility.Collapsed;
-                MainWindowViewModel.Default.Prompt.Message = "找不到该振动台";
-                MainWindowViewModel.Default.Prompt.IsOpen = true;
+                PromptViewModel.Default.Init();
+                PromptViewModel.Default.NoVisibility = System.Windows.Visibility.Collapsed;
+                PromptViewModel.Default.Message = "找不到该振动台";
+                PromptViewModel.Default.IsOpen = true;
                 return;
             }
             if (StartTime > EndTime)
             {
-                MainWindowViewModel.Default.Prompt.Init();
-                MainWindowViewModel.Default.Prompt.NoVisibility = System.Windows.Visibility.Collapsed;
+                PromptViewModel.Default.Init();
+                PromptViewModel.Default.NoVisibility = System.Windows.Visibility.Collapsed;
                 return;
             }
             Datas.Clear();
             var datas = Sql.Default.Find<Shaker.Model.DataMangerItemModel>(x=>x.Time>=StartTime&&x.Time<=EndTime,name:SelectedShaker).ToList();
             if(datas ==null || datas.Count()==0)
             {
-                 MainWindowViewModel.Default.Prompt.Init();
-                 MainWindowViewModel.Default.Prompt.NoVisibility = System.Windows.Visibility.Collapsed;
-                 MainWindowViewModel.Default.Prompt.Message = "没有找到数据";
-                 MainWindowViewModel.Default.Prompt.IsOpen = true;
+                 PromptViewModel.Default.Init();
+                 PromptViewModel.Default.NoVisibility = System.Windows.Visibility.Collapsed;
+                 PromptViewModel.Default.Message = "没有找到数据";
+                PromptViewModel.Default.IsOpen = true;
                 return;
             }
             foreach (var data in datas)

+ 1 - 1
ShakerManger/ViewModel/LogMangerViewModel.cs

@@ -37,7 +37,7 @@ namespace ShakerManger.ViewModel
                 DateTime= DateTime.Now,
                 Message= message,
                 LogType= logType,
-                UserID = MainWindowViewModel.Default.Login.Model.Id,
+                UserID = LoginViewModel.Default.Model.Id,
             });
         }
         public LogType LogType { get => logType; set =>UpdateProperty(ref logType, value); }

+ 8 - 0
ShakerManger/ViewModel/LoginViewModel.cs

@@ -13,6 +13,14 @@ namespace ShakerManger.ViewModel
 {
     internal class LoginViewModel : DisplayViewModel<Shaker.Model.UserModel>
     {
+        private LoginViewModel()
+        {
+
+        }
+        static LoginViewModel()
+        {
+        }
+        public static LoginViewModel Default { get; } = new LoginViewModel();
         private string passWord = string.Empty;
         private string message = string.Empty;
         private bool isLoggedIn = false;

+ 4 - 6
ShakerManger/ViewModel/MainWindowViewModel.cs

@@ -120,10 +120,10 @@ namespace ShakerManger.ViewModel
         public ICommand ExitCommand => new DelegateCommand(Exit);
         private void Exit()
         {
-            Prompt.Init();
-            Prompt.Message = "是否退出程序?";
-            Prompt.YesAction = () => App.Current.Shutdown();
-            Prompt.IsOpen = true;
+            PromptViewModel.Default.Init();
+            PromptViewModel.Default.Message = "是否退出程序?";
+            PromptViewModel.Default.YesAction = () => App.Current.Shutdown();
+            PromptViewModel.Default.IsOpen = true;
         }
         public bool LayoutVisibily { get => layoutVisibily; set =>UpdateProperty(ref layoutVisibily , value); }
 
@@ -133,7 +133,6 @@ namespace ShakerManger.ViewModel
         public Action InitedAction { get; set; }
         public IMainPageViewModel CurrentMainPage { get => currentMainPage; set =>UpdateProperty(ref currentMainPage, value); }
         public ObservableCollection<IMainPageViewModel> MainPages { get; } = new ObservableCollection<IMainPageViewModel>();
-        public PromptViewModel Prompt { get; } = new PromptViewModel();
         public static MainWindowViewModel Default { get; } = new MainWindowViewModel();
         public ICommand CloseCommand=> new DelegateCommand(Close);
         private void Close()
@@ -149,6 +148,5 @@ namespace ShakerManger.ViewModel
             LogManger.AddLog("程序退出");
         }
         public ICommand ShutDownCommand=> new DelegateCommand(()=> App.Current.Shutdown());
-        public LoginViewModel Login { get; } = new LoginViewModel();
     }
 }

+ 9 - 1
ShakerManger/ViewModel/PromptViewModel.cs

@@ -14,6 +14,14 @@ namespace ShakerManger.ViewModel
 {
     internal class PromptViewModel : ViewModelBase<Shaker.Model.ModelBase>
     {
+        private PromptViewModel()
+        {
+
+        }
+        static PromptViewModel()
+        {
+
+        }
         public override void Init()
         {
             base.Init();
@@ -28,7 +36,7 @@ namespace ShakerManger.ViewModel
             IsOpen = false;
             IconType = IconType.Info;
         }
-
+        public static PromptViewModel Default { get; } = new PromptViewModel();
         public Visibility IconVisibility { get => iconVisibility; set => UpdateProperty(ref iconVisibility, value); }
         public IconType IconType
         {

+ 10 - 10
ShakerManger/ViewModel/ShakerConfigPageViewModel.cs

@@ -22,19 +22,19 @@ namespace ShakerManger.ViewModel
             if (currentShaker == null) return;
             if (!Regex.IsMatch(CurrentShaker.IPAddress, @"(^((2[0-4]\d.)|(25[0-5].)|(1\d{2}.)|(\d{1,2}.))((2[0-5]{2}.)|(1\d{2}.)|(\d{1,2}.){2})((1\d{2})|(2[0-5]{2})|(\d{1,2}))$)", RegexOptions.IgnoreCase))
             {
-                MainWindowViewModel.Default.Prompt.Init();
-                MainWindowViewModel.Default.Prompt.NoVisibility = System.Windows.Visibility.Collapsed;
-                MainWindowViewModel.Default.Prompt.Message = "IP地址格式不正确";
-                MainWindowViewModel.Default.Prompt.IconType = IconType.Error;
-                MainWindowViewModel.Default.Prompt.IsOpen = true;
+                PromptViewModel.Default.Init();
+                PromptViewModel.Default.NoVisibility = System.Windows.Visibility.Collapsed;
+                PromptViewModel.Default.Message = "IP地址格式不正确";
+                PromptViewModel.Default.IconType = IconType.Error;
+                PromptViewModel.Default.IsOpen = true;
                 return;
             }
             Sql.Default.Replace(x => x.Id, CurrentShaker.Model.Id, CurrentShaker.Model);
-            MainWindowViewModel.Default.Prompt.Init();
-            MainWindowViewModel.Default.Prompt.NoVisibility = System.Windows.Visibility.Collapsed;
-            MainWindowViewModel.Default.Prompt.Message = "保存成功";
-            MainWindowViewModel.Default.Prompt.IconType = IconType.Info;
-            MainWindowViewModel.Default.Prompt.IsOpen = true;
+            PromptViewModel.Default.Init();
+            PromptViewModel.Default.NoVisibility = System.Windows.Visibility.Collapsed;
+            PromptViewModel.Default.Message = "保存成功";
+            PromptViewModel.Default.IconType = IconType.Info;
+            PromptViewModel.Default.IsOpen = true;
             BusManger.Defaut.Bus.PubSub.PublishAsync(CurrentShaker.Model, new Dictionary<string, string>()
             {
                 {Shaker.Model.GlobalVariable.ShakerIDKey,CurrentShaker.Model.Id }

+ 45 - 45
ShakerManger/ViewModel/ShakerControlViewModel.cs

@@ -38,10 +38,10 @@ namespace ShakerManger.ViewModel
         public ICommand DisConnectCommand=> new DelegateCommand(DisConnect);
         private void DisConnect()
         {
-            MainWindowViewModel.Default.Prompt.Init();
-            MainWindowViewModel.Default.Prompt.IconType = IconType.Ask;
-            MainWindowViewModel.Default.Prompt.Message = "是否断开功放连接?";
-            MainWindowViewModel.Default.Prompt.YesAction = async ()=>
+            PromptViewModel.Default.Init();
+            PromptViewModel.Default.IconType = IconType.Ask;
+            PromptViewModel.Default.Message = "是否断开功放连接?";
+            PromptViewModel.Default.YesAction = async ()=>
             {
                 var result = await BusManger.Defaut.Bus.RPC.RequestAsync<Shaker.Model.SysControl, Shaker.Model.Result>(new SysControl()
                 {
@@ -49,14 +49,14 @@ namespace ShakerManger.ViewModel
                 }, Properties);
                 if (result == null ||!result.Success)
                 {
-                    MainWindowViewModel.Default.Prompt.Init();
-                    MainWindowViewModel.Default.Prompt.IconType = IconType.Error;
-                    MainWindowViewModel.Default.Prompt.Message = result == null? "通信超时" : result.Message;
-                    MainWindowViewModel.Default.Prompt.NoVisibility = Visibility.Collapsed;
-                    MainWindowViewModel.Default.Prompt.IsOpen = true;
+                    PromptViewModel.Default.Init();
+                    PromptViewModel.Default.IconType = IconType.Error;
+                    PromptViewModel.Default.Message = result == null? "通信超时" : result.Message;
+                    PromptViewModel.Default.NoVisibility = Visibility.Collapsed;
+                    PromptViewModel.Default.IsOpen = true;
                 }
             };
-            MainWindowViewModel.Default.Prompt.IsOpen = true;
+            PromptViewModel.Default.IsOpen = true;
         }
         public ICommand ConnectCommand => new DelegateCommand(Connect);
         private async void Connect()
@@ -67,11 +67,11 @@ namespace ShakerManger.ViewModel
             },Properties);
             if(result == null || !result.Success)
             {
-                MainWindowViewModel.Default.Prompt.Init();
-                MainWindowViewModel.Default.Prompt.IconType = IconType.Error;
-                MainWindowViewModel.Default.Prompt.Message = result == null?"通信超时": result.Message;
-                MainWindowViewModel.Default.Prompt.NoVisibility = Visibility.Collapsed;
-                MainWindowViewModel.Default.Prompt.IsOpen= true;
+                PromptViewModel.Default.Init();
+                PromptViewModel.Default.IconType = IconType.Error;
+                PromptViewModel.Default.Message = result == null?"通信超时": result.Message;
+                PromptViewModel.Default.NoVisibility = Visibility.Collapsed;
+                PromptViewModel.Default.IsOpen= true;
             }
         }
         public bool IsOnline { get => isOnline; set =>UpdateProperty(ref isOnline, value); }
@@ -346,11 +346,11 @@ namespace ShakerManger.ViewModel
             }, Properties);
             if(result == null || !result.Success)
             {
-                MainWindowViewModel.Default.Prompt.Init();
-                MainWindowViewModel.Default.Prompt.IconType = IconType.Error;
-                MainWindowViewModel.Default.Prompt.Message = result == null ? "通信超时" : result.Message;
-                MainWindowViewModel.Default.Prompt.NoVisibility = Visibility.Collapsed;
-                MainWindowViewModel.Default.Prompt.IsOpen = true;
+                PromptViewModel.Default.Init();
+                PromptViewModel.Default.IconType = IconType.Error;
+                PromptViewModel.Default.Message = result == null ? "通信超时" : result.Message;
+                PromptViewModel.Default.NoVisibility = Visibility.Collapsed;
+                PromptViewModel.Default.IsOpen = true;
             }
         }
         private async void SetGain(short gain)
@@ -362,11 +362,11 @@ namespace ShakerManger.ViewModel
             }, Properties);
             if (result == null || !result.Success)
             {
-                MainWindowViewModel.Default.Prompt.Init();
-                MainWindowViewModel.Default.Prompt.IconType = IconType.Error;
-                MainWindowViewModel.Default.Prompt.Message = result == null ? "通信超时" : result.Message;
-                MainWindowViewModel.Default.Prompt.NoVisibility = Visibility.Collapsed;
-                MainWindowViewModel.Default.Prompt.IsOpen = true;
+                PromptViewModel.Default.Init();
+                PromptViewModel.Default.IconType = IconType.Error;
+                PromptViewModel.Default.Message = result == null ? "通信超时" : result.Message;
+                PromptViewModel.Default.NoVisibility = Visibility.Collapsed;
+                PromptViewModel.Default.IsOpen = true;
             }
         }
         private async void Start()
@@ -378,11 +378,11 @@ namespace ShakerManger.ViewModel
             }, Properties);
             if (result == null || !result.Success)
             {
-                MainWindowViewModel.Default.Prompt.Init();
-                MainWindowViewModel.Default.Prompt.IconType = IconType.Error;
-                MainWindowViewModel.Default.Prompt.Message = result == null ? "通信超时" : result.Message;
-                MainWindowViewModel.Default.Prompt.NoVisibility = Visibility.Collapsed;
-                MainWindowViewModel.Default.Prompt.IsOpen = true;
+                PromptViewModel.Default.Init();
+                PromptViewModel.Default.IconType = IconType.Error;
+                PromptViewModel.Default.Message = result == null ? "通信超时" : result.Message;
+                PromptViewModel.Default.NoVisibility = Visibility.Collapsed;
+                PromptViewModel.Default.IsOpen = true;
             }
         }
         private async void Stop()
@@ -402,11 +402,11 @@ namespace ShakerManger.ViewModel
             }, Properties);
             if (result == null || !result.Success)
             {
-                MainWindowViewModel.Default.Prompt.Init();
-                MainWindowViewModel.Default.Prompt.IconType = IconType.Error;
-                MainWindowViewModel.Default.Prompt.Message = result == null ? "通信超时" : result.Message;
-                MainWindowViewModel.Default.Prompt.NoVisibility = Visibility.Collapsed;
-                MainWindowViewModel.Default.Prompt.IsOpen = true;
+                PromptViewModel.Default.Init();
+                PromptViewModel.Default.IconType = IconType.Error;
+                PromptViewModel.Default.Message = result == null ? "通信超时" : result.Message;
+                PromptViewModel.Default.NoVisibility = Visibility.Collapsed;
+                PromptViewModel.Default.IsOpen = true;
             }
         }
 
@@ -419,11 +419,11 @@ namespace ShakerManger.ViewModel
             }, Properties);
             if (result == null || !result.Success)
             {
-                MainWindowViewModel.Default.Prompt.Init();
-                MainWindowViewModel.Default.Prompt.IconType = IconType.Error;
-                MainWindowViewModel.Default.Prompt.Message = result == null ? "通信超时" : result.Message;
-                MainWindowViewModel.Default.Prompt.NoVisibility = Visibility.Collapsed;
-                MainWindowViewModel.Default.Prompt.IsOpen = true;
+                PromptViewModel.Default.Init();
+                PromptViewModel.Default.IconType = IconType.Error;
+                PromptViewModel.Default.Message = result == null ? "通信超时" : result.Message;
+                PromptViewModel.Default.NoVisibility = Visibility.Collapsed;
+                PromptViewModel.Default.IsOpen = true;
             }
         }
         private short gain;
@@ -493,11 +493,11 @@ namespace ShakerManger.ViewModel
             }, Properties,CancellationToken.None,MainWindowViewModel.Default.SystemConfig.SystemPage.RequestPermissionsTimeout);
             if (result == null || !result.Success)
             {
-                MainWindowViewModel.Default.Prompt.Init();
-                MainWindowViewModel.Default.Prompt.IconType = IconType.Error;
-                MainWindowViewModel.Default.Prompt.Message = result == null ? "通信超时" : result.Message;
-                MainWindowViewModel.Default.Prompt.NoVisibility = Visibility.Collapsed;
-                MainWindowViewModel.Default.Prompt.IsOpen = true;
+                PromptViewModel.Default.Init();
+                PromptViewModel.Default.IconType = IconType.Error;
+                PromptViewModel.Default.Message = result == null ? "通信超时" : result.Message;
+                PromptViewModel.Default.NoVisibility = Visibility.Collapsed;
+                PromptViewModel.Default.IsOpen = true;
             }
         }
         public short Gain 

+ 12 - 12
ShakerManger/ViewModel/SqlPageViewModel.cs

@@ -101,32 +101,32 @@ namespace ShakerManger.ViewModel
         private void TestConnect()
         {
             var result = Sql.Default.TestConnection(Connectstring);
-            MainWindowViewModel.Default.Prompt.Init();
-            MainWindowViewModel.Default.Prompt.NoVisibility = System.Windows.Visibility.Collapsed;
+            PromptViewModel.Default.Init();
+            PromptViewModel.Default.NoVisibility = System.Windows.Visibility.Collapsed;
             if(result)
             {
-                MainWindowViewModel.Default.Prompt.Message = "连接成功";
-                MainWindowViewModel.Default.Prompt.IconType = IconType.Info;
+                PromptViewModel.Default.Message = "连接成功";
+                PromptViewModel.Default.IconType = IconType.Info;
             }
             else
             {
-                MainWindowViewModel.Default.Prompt.Message = "连接失败";
-                MainWindowViewModel.Default.Prompt.IconType = IconType.Error;
+                PromptViewModel.Default.Message = "连接失败";
+                PromptViewModel.Default.IconType = IconType.Error;
             }
-            MainWindowViewModel.Default.Prompt.IsOpen = true;
+            PromptViewModel.Default.IsOpen = true;
         }
         public ICommand SaveCommand =>new DelegateCommand(Save);
         private void Save()
         {
-            MainWindowViewModel.Default.Prompt.Init();
-            MainWindowViewModel.Default.Prompt.Message = "参数保存后重启后起效,是否继续?";
-            MainWindowViewModel.Default.Prompt.IconType = IconType.Ask;
-            MainWindowViewModel.Default.Prompt.YesAction = () =>
+            PromptViewModel.Default.Init();
+            PromptViewModel.Default.Message = "参数保存后重启后起效,是否继续?";
+            PromptViewModel.Default.IconType = IconType.Ask;
+            PromptViewModel.Default.YesAction = () =>
             {
                 Sql.Default.Save(Model);
                 (App.Current as App)?.Restart();
             };
-            MainWindowViewModel.Default.Prompt.IsOpen = true;
+            PromptViewModel.Default.IsOpen = true;
         }
 
         public override Type View { get; } = typeof(View.SqlPageView);

+ 24 - 24
ShakerManger/ViewModel/UserPageViewModel.cs

@@ -69,11 +69,11 @@ namespace ShakerManger.ViewModel
                     SelectedUser = Users.First();
                 }
                 await Task.Delay(100);
-                MainWindowViewModel.Default.Prompt.Init();
-                MainWindowViewModel.Default.Prompt.Message = "添加成功";
-                MainWindowViewModel.Default.Prompt.IconType = IconType.Info;
-                MainWindowViewModel.Default.Prompt.NoVisibility = System.Windows.Visibility.Collapsed;
-                MainWindowViewModel.Default.Prompt.IsOpen = true;
+                PromptViewModel.Default.Init();
+                PromptViewModel.Default.Message = "添加成功";
+                PromptViewModel.Default.IconType = IconType.Info;
+                PromptViewModel.Default.NoVisibility = System.Windows.Visibility.Collapsed;
+                PromptViewModel.Default.IsOpen = true;
             };
             AddUserViewModel.IsOpen = true;
         }
@@ -81,9 +81,9 @@ namespace ShakerManger.ViewModel
         private void DeleteUser()
         {
             if (!IsLocalUser) return;
-            MainWindowViewModel.Default.Prompt.Init();
-            MainWindowViewModel.Default.Prompt.Message = "确认删除用户吗?";
-            MainWindowViewModel.Default.Prompt.YesAction = async () =>
+            PromptViewModel.Default.Init();
+            PromptViewModel.Default.Message = "确认删除用户吗?";
+            PromptViewModel.Default.YesAction = async () =>
             {
                 Sql.Default.Delete<UserModel, string>(x => x.Id, SelectedUser.Model.Id);
                 Users.Remove(SelectedUser);
@@ -96,14 +96,14 @@ namespace ShakerManger.ViewModel
                     SelectedUser = new UserViewModel(new UserModel());
                 }
 
-                MainWindowViewModel.Default.Prompt.Init();
+                PromptViewModel.Default.Init();
                 await Task.Delay(100);
-                MainWindowViewModel.Default.Prompt.Message = "删除成功";
-                MainWindowViewModel.Default.Prompt.IconType = IconType.Info;
-                MainWindowViewModel.Default.Prompt.NoVisibility = System.Windows.Visibility.Collapsed;
-                MainWindowViewModel.Default.Prompt.IsOpen = true;
+                PromptViewModel.Default.Message = "删除成功";
+                PromptViewModel.Default.IconType = IconType.Info;
+                PromptViewModel.Default.NoVisibility = System.Windows.Visibility.Collapsed;
+                PromptViewModel.Default.IsOpen = true;
             };
-            MainWindowViewModel.Default.Prompt.IsOpen = true;
+            PromptViewModel.Default.IsOpen = true;
         }
         public ICommand SaveUserCommand => new DelegateCommand(SaveUser);
         private void SaveUser()
@@ -111,11 +111,11 @@ namespace ShakerManger.ViewModel
             if (!IsLocalUser || !SelectedUser.IsChanged) return;
             Sql.Default.Replace(x => x.Id, SelectedUser.Model.Id, SelectedUser.Model);
             SelectedUser.IsChanged = false;
-            MainWindowViewModel.Default.Prompt.Init();
-            MainWindowViewModel.Default.Prompt.Message = "保存成功";
-            MainWindowViewModel.Default.Prompt.IconType = IconType.Info;
-            MainWindowViewModel.Default.Prompt.NoVisibility = System.Windows.Visibility.Collapsed;
-            MainWindowViewModel.Default.Prompt.IsOpen = true;
+            PromptViewModel.Default.Init();
+            PromptViewModel.Default.Message = "保存成功";
+            PromptViewModel.Default.IconType = IconType.Info;
+            PromptViewModel.Default.NoVisibility = System.Windows.Visibility.Collapsed;
+            PromptViewModel.Default.IsOpen = true;
         }
         public ICommand ResetPasswordCommand =>new DelegateCommand(ResetPassword);
         public void ResetPassword()
@@ -126,11 +126,11 @@ namespace ShakerManger.ViewModel
             {
                 Sql.Default.UpDate<UserModel,string,string>(x => x.Id, SelectedUser.Model.Id, x => x.PassWord, GlobalVariable.MD5Encrypt32(ResetPassWord.FirstPassword));
                 await Task.Delay(100);
-                MainWindowViewModel.Default.Prompt.Init();
-                MainWindowViewModel.Default.Prompt.Message = "修改成功";
-                MainWindowViewModel.Default.Prompt.IconType = IconType.Info;
-                MainWindowViewModel.Default.Prompt.NoVisibility = System.Windows.Visibility.Collapsed;
-                MainWindowViewModel.Default.Prompt.IsOpen = true;
+                PromptViewModel.Default.Init();
+                PromptViewModel.Default.Message = "修改成功";
+                PromptViewModel.Default.IconType = IconType.Info;
+                PromptViewModel.Default.NoVisibility = System.Windows.Visibility.Collapsed;
+                PromptViewModel.Default.IsOpen = true;
             };
             ResetPassWord.IsOpen = true;
         }