Exemplo n.º 1
0
        public static void ShowWindow(MinerClientsWindowViewModel minerClientsWindowVm)
        {
            if (minerClientsWindowVm.SelectedMinerClients == null && minerClientsWindowVm.SelectedMinerClients.Length != 1)
            {
                return;
            }
            var minerClientVm = minerClientsWindowVm.SelectedMinerClients[0];

            ContainerWindow.ShowWindow(new ContainerWindowViewModel {
                HasOwner      = true,
                IsTopMost     = true,
                IconName      = "Icon_OverClock",
                Width         = 800,
                Height        = 600,
                CloseVisible  = Visibility.Visible,
                FooterVisible = Visibility.Collapsed
            }, ucFactory: (window) => {
                var vm = new GpuProfilesPageViewModel(minerClientsWindowVm)
                {
                    CloseWindow = () => {
                        window.Close();
                    }
                };
                var uc = new GpuProfilesPage(vm);
                ResourceDictionarySet.Instance.TryGetResourceDic(nameof(GpuProfilesPage), out ResourceDictionary resourceDictionary);
                var client = minerClientsWindowVm.SelectedMinerClients[0];
                resourceDictionary["WindowTitle"] = $"超频 - 基于矿机{client.MinerName}({client.MinerIp})";
                void handler(object sender, PropertyChangedEventArgs e)
                {
                    if (e.PropertyName == nameof(minerClientsWindowVm.SelectedMinerClients))
                    {
                        if (minerClientsWindowVm.SelectedMinerClients.Contains(minerClientVm))
                        {
                            vm.IsMinerClientVmVisible = Visibility.Collapsed;
                        }
                        else
                        {
                            vm.IsMinerClientVmVisible = Visibility.Visible;
                        }
                    }
                }

                minerClientsWindowVm.PropertyChanged += handler;
                uc.Unloaded += (object sender, RoutedEventArgs e) => {
                    minerClientsWindowVm.PropertyChanged -= handler;
                };
                return(uc);
            }, fixedSize: true);
        }
Exemplo n.º 2
0
        public static void ShowWindow(MinerClientsWindowViewModel minerClientsWindowVm)
        {
            if (minerClientsWindowVm.SelectedMinerClients == null && minerClientsWindowVm.SelectedMinerClients.Length != 1)
            {
                return;
            }
            var minerClientVm = minerClientsWindowVm.SelectedMinerClients[0];

            ContainerWindow.ShowWindow(new ContainerWindowViewModel {
                Title         = $"超频 - 基于矿机{minerClientVm.MinerName}({minerClientVm.MinerIp})",
                IconName      = "Icon_OverClock",
                Width         = 800,
                Height        = 700,
                CloseVisible  = Visibility.Visible,
                FooterVisible = Visibility.Collapsed
            }, ucFactory: (window) => {
                window.Owner = WpfUtil.GetTopWindow();
                var vm       = new GpuProfilesPageViewModel(minerClientsWindowVm)
                {
                    CloseWindow = window.Close
                };
                var uc     = new GpuProfilesPage(vm);
                var client = minerClientsWindowVm.SelectedMinerClients[0];
                void handler(object sender, PropertyChangedEventArgs e)
                {
                    if (e.PropertyName == nameof(minerClientsWindowVm.SelectedMinerClients))
                    {
                        if (minerClientsWindowVm.SelectedMinerClients.Contains(minerClientVm))
                        {
                            vm.IsMinerClientVmVisible = Visibility.Collapsed;
                        }
                        else
                        {
                            vm.IsMinerClientVmVisible = Visibility.Visible;
                        }
                    }
                }

                minerClientsWindowVm.PropertyChanged += handler;
                uc.Unloaded += (object sender, RoutedEventArgs e) => {
                    minerClientsWindowVm.PropertyChanged -= handler;
                };
                return(uc);
            }, fixedSize: false);
        }
Exemplo n.º 3
0
 public GpuProfilesPage(GpuProfilesPageViewModel vm)
 {
     this.DataContext = vm;
     InitializeComponent();
 }
Exemplo n.º 4
0
        public static void ShowWindow(MinerClientsWindowViewModel minerClientsWindowVm)
        {
            if (minerClientsWindowVm.SelectedMinerClients == null && minerClientsWindowVm.SelectedMinerClients.Length != 1)
            {
                return;
            }
            var minerClientVm = minerClientsWindowVm.SelectedMinerClients[0];

            ContainerWindow.ShowWindow(new ContainerWindowViewModel {
                Title           = $"超频 - 基于矿机{minerClientVm.MinerName}({minerClientVm.MinerIp})",
                IconName        = "Icon_OverClock",
                Width           = 800,
                Height          = 700,
                IsMaskTheParent = false,
                IsChildWindow   = true,
                CloseVisible    = Visibility.Visible,
                FooterVisible   = Visibility.Collapsed
            }, ucFactory: (window) => {
                var vm = new GpuProfilesPageViewModel(minerClientsWindowVm);
                window.BuildCloseWindowOnecePath(vm.Id);
                var uc     = new GpuProfilesPage(vm);
                var client = minerClientsWindowVm.SelectedMinerClients[0];
                void onSelectedMinerClientsChanged(object sender, PropertyChangedEventArgs e)
                {
                    if (e.PropertyName == nameof(minerClientsWindowVm.SelectedMinerClients))
                    {
                        List <MinerClientViewModel> toRemoves = new List <MinerClientViewModel>();
                        foreach (var item in vm.MinerClientVms)
                        {
                            if (item != minerClientVm)
                            {
                                var exist = minerClientsWindowVm.SelectedMinerClients.FirstOrDefault(a => a == item);
                                if (exist == null)
                                {
                                    toRemoves.Add(item);
                                }
                            }
                        }
                        foreach (var item in toRemoves)
                        {
                            vm.MinerClientVms.Remove(item);
                        }
                        List <MinerClientViewModel> toAdds = new List <MinerClientViewModel>();
                        foreach (var item in minerClientsWindowVm.SelectedMinerClients)
                        {
                            var exist = vm.MinerClientVms.FirstOrDefault(a => a == item);
                            if (exist == null)
                            {
                                toAdds.Add(item);
                            }
                        }
                        foreach (var item in toAdds)
                        {
                            vm.MinerClientVms.Add(item);
                        }
                    }
                }

                minerClientsWindowVm.PropertyChanged += onSelectedMinerClientsChanged;
                uc.Unloaded += (object sender, RoutedEventArgs e) => {
                    minerClientsWindowVm.PropertyChanged -= onSelectedMinerClientsChanged;
                };
                window.BuildEventPath <GetGpuProfilesResponsedEvent>("收到GetGpuProfilesJson的响应", LogEnum.DevConsole, path: message => {
                    if (message.ClientId != minerClientVm.ClientId)
                    {
                        return;
                    }
                    vm.SetData(message.Data);
                }, typeof(GpuProfilesPage));
                MinerStudioRoot.MinerStudioService.GetGpuProfilesJsonAsync(minerClientVm);
                return(uc);
            }, fixedSize: false);
        }
Exemplo n.º 5
0
 public GpuProfilesPage(GpuProfilesPageViewModel vm)
 {
     this.DataContext = vm;
     InitializeComponent();
     ResourceDictionarySet.Instance.FillResourceDic(this, this.Resources);
 }