protected virtual void OnUnloaded() { DocumentChanged = null; CaretPositionChanged = null; quickClassBrowser.JumpAction -= EhQuickClassBrowser_JumpTo; Adapter = null; Document = null; primaryTextEditor = null; secondaryTextEditor = null; activeTextEditor = null; quickClassBrowser = null; Children.Clear(); }
public CodeEditor() { //CodeEditorOptions.Instance.PropertyChanged += CodeEditorOptions_Instance_PropertyChanged; //CustomizedHighlightingColor.ActiveColorsChanged += CustomizedHighlightingColor_ActiveColorsChanged; //ParserService.ParseInformationUpdated += ParserServiceParseInformationUpdated; FlowDirection = FlowDirection.LeftToRight; // code editing is always left-to-right CommandBindings.Add(new CommandBinding(RoutedCommands.SplitView, OnSplitView)); //textMarkerService = new TextMarkerService(this); //iconBarManager = new IconBarManager(); //if (CodeEditorOptions.Instance.EnableChangeMarkerMargin) //{ // changeWatcher = new DefaultChangeWatcher(); //} primaryTextEditor = CreateTextEditor(); //primaryTextEditorAdapter = (CodeEditorAdapter)primaryTextEditor.TextArea.GetService(typeof(ITextEditor)); //Debug.Assert(primaryTextEditorAdapter != null); activeTextEditor = primaryTextEditor; Document = primaryTextEditor.Document; primaryTextEditor.SetBinding(TextEditor.DocumentProperty, new Binding("Document") { Source = this }); ColumnDefinitions.Add(new ColumnDefinition()); RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star), MinHeight = minRowHeight }); SetRow(primaryTextEditor, 1); quickClassBrowser = new QuickClassBrowser(); quickClassBrowser.JumpAction += EhQuickClassBrowser_JumpTo; Children.Add(quickClassBrowser); Children.Add(primaryTextEditor); Unloaded += (s, e) => OnUnloaded(); }