public MainWindowCommands(MainWindowViewModel viewModel) { this.viewModel = viewModel; LoadFractalCommand = new LoadFractalCommand(viewModel); SaveImageCommand = new SaveImageCommand(viewModel); CloseWindowCommand = new CloseWindowCommand(viewModel); MinimizeWindowCommand = new MinimizeWindowCommand(viewModel); }
void PlayerViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { switch (e.PropertyName) { case "IsLoading": ReloadCommand.NotifyCanExecuteChanged(); NotifyPropertyChanged("StatusBrush"); UploadImageCommand.NotifyCanExecuteChanged(); break; case "Error": NotifyPropertyChanged("StatusBrush"); ReloadCommand.NotifyCanExecuteChanged(); break; case "PlayerName": NotifyPropertyChanged("Title"); NotifyPropertyChanged("CleanName"); break; case "IsScreenUploaded": UploadImageCommand.NotifyCanExecuteChanged(); AddReportCommand.NotifyCanExecuteChanged(); break; case "DrawUserInfo": NotifyPropertyChanged("Screenshot"); break; case "ScreenshotDate": infoScreenshot = DrawInfo(screenshot); NotifyPropertyChanged("Screenshot"); break; case "Screenshot": SaveImageCommand.NotifyCanExecuteChanged(); UploadImageCommand.NotifyCanExecuteChanged(); if (screenshot == null) { infoScreenshot = null; GC.Collect(); } break; case "ScreenshotTaken": NotifyPropertyChanged("StatusBrush"); break; } }
public void SaveImage(SaveImageCommand command) { var image = SavedImages.FirstOrDefault(x => x.ImageId.Equals(command.ImageId)); if (image == null) { SavedImages.Add(new UserImage { ImageId = command.ImageId }); } else { SavedImages.Remove(image); } }
// This is probably the dumbest thing ever.... // Command binding isn't working currently on buttons and flyout menu items.... // Not sure why but this is a quick work around. private void OnSaveContextMenuClicked(object sender, RoutedEventArgs e) { SaveImageCommand?.Execute(sender); }