public PrinterSelectorDialogViewModel() { printingProvider = Main.PrintingProvider; PrinterSelector = printingProvider.PrinterSelector; SelectedPrinterIndex = PrinterSelector.ObserveProperty(p => p.SelectedPrinter) .Select(x => PrinterSelector.Printers.IndexOf(x)).ToReactiveProperty(); PaperSizes = PrintingProvider.PaperSizes; PaperOrientations = PrintingProvider.PaperOrientations; PaperSizeIndex = printingProvider.ObserveProperty(p => p.PaperSize) .Select(x => PrintingProvider.PaperSizes.IndexOf(x)).ToReactiveProperty(); PaperOrientationIndex = printingProvider.ObserveProperty(p => p.PaperOrientation) .Select(x => PrintingProvider.PaperOrientations.IndexOf(x)).ToReactiveProperty(); PaperSizeIndex.ObserveProperty(x => x.Value) .Subscribe(i => printingProvider.PaperSize = PrintingProvider.PaperSizes[i]); PaperOrientationIndex.ObserveProperty(x => x.Value).Subscribe(i => printingProvider.PaperOrientation = PrintingProvider.PaperOrientations[i]); PrintCommand = new ReactiveCommand(); PrintCommand.Subscribe(Print); CancelCommand = new ReactiveCommand(); CancelCommand.Subscribe(() => IsShowDialog = false); ShowDialogCommand = new ReactiveCommand(); ShowDialogCommand.Subscribe(() => IsShowDialog = true); }
/// <summary> /// コンストラクタ /// </summary> public TttMain() { main = new Main(); DocumentName = Properties.Settings.Default.DefaultDocumentName; using (var textReader = new TextReader(settingsJson)) { Settings = JsonConvert.DeserializeObject <TttSettings>(textReader.Read()); } About = new About(); ThemeSelector = new ThemeSelector(Settings); PrintingProvider = new PrintingProvider(); }