public GraphWindow()
        {
            RedrawFull         = TelmaCommandAssistant.CreateFromTask("RedrawFull", RedrawFullImpl).DisposeWith(disposer);
            RedrawSelected     = TelmaCommandAssistant.CreateFromTask("RedrawSelected", RedrawSelectedImpl).DisposeWith(disposer);
            RedrawWithNewScale = TelmaCommandAssistant.Create("RedrawWithNewScale", () => renderer.Invalidate()).DisposeWith(disposer);

            OnGMFull = TelmaCommandAssistant.Create("OnGMFull", () => { if (Canvas != null)
                                                                        {
                                                                            Canvas.GridMode = GraphicCanvas.GridModes.Full;
                                                                        }
                                                    }).DisposeWith(disposer);
            OnGMMain = TelmaCommandAssistant.Create("OnGMMain", () => { if (Canvas != null)
                                                                        {
                                                                            Canvas.GridMode = GraphicCanvas.GridModes.Main;
                                                                        }
                                                    }).DisposeWith(disposer);
            OnGMNone = TelmaCommandAssistant.Create("OnGMNone", () => { if (Canvas != null)
                                                                        {
                                                                            Canvas.GridMode = GraphicCanvas.GridModes.None;
                                                                        }
                                                    }).DisposeWith(disposer);
            OnGMZero = TelmaCommandAssistant.Create("OnGMZero", () => { if (Canvas != null)
                                                                        {
                                                                            Canvas.GridMode = GraphicCanvas.GridModes.Zero;
                                                                        }
                                                    }).DisposeWith(disposer);

            OnGMFull.Command.Subscribe(_ => { renderer.Invalidate(); });
            OnGMMain.Command.Subscribe(_ => { renderer.Invalidate(); });
            OnGMNone.Command.Subscribe(_ => { renderer.Invalidate(); });
            OnGMZero.Command.Subscribe(_ => { renderer.Invalidate(); });
        }