public RazorDocumentInfoViewModel(RazorDocumentTracker documentTracker) { if (documentTracker == null) { throw new ArgumentNullException(nameof(documentTracker)); } _documentTracker = documentTracker; }
private void OnAfterDocumentWindowHide(IVsWindowFrame frame) { var vsTextView = VsShellUtilities.GetTextView(frame); var textView = _adapterFactory.GetWpfTextView(vsTextView); if (textView == _textView) { ((FrameworkElement)Content).DataContext = null; _documentTracker.ContextChanged -= DocumentTracker_ContextChanged; _textView = null; _documentTracker = null; } }
private void OnBeforeDocumentWindowShow(IVsWindowFrame frame) { var vsTextView = VsShellUtilities.GetTextView(frame); var textView = _adapterFactory.GetWpfTextView(vsTextView); if (textView != null && textView != _textView) { _textView = textView; if (_documentTracker != null) { _documentTracker.ContextChanged -= DocumentTracker_ContextChanged; } _documentTracker = _documentTrackerService.CreateTracker(textView); _documentTracker.ContextChanged += DocumentTracker_ContextChanged; ((FrameworkElement)Content).DataContext = new RazorDocumentInfoViewModel(_documentTracker); } }