diff --git a/src/HexManiac.Core/ViewModels/EditorViewModel.cs b/src/HexManiac.Core/ViewModels/EditorViewModel.cs index 93ac9de3..12cd149a 100644 --- a/src/HexManiac.Core/ViewModels/EditorViewModel.cs +++ b/src/HexManiac.Core/ViewModels/EditorViewModel.cs @@ -164,9 +164,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels { if (TryUpdate(ref selectedIndex, value)) { findPrevious.CanExecuteChanged.Invoke(findPrevious, EventArgs.Empty); findNext.CanExecuteChanged.Invoke(findNext, EventArgs.Empty); - GotoViewModel.PropertyChanged -= GotoPropertyChanged; - GotoViewModel = new GotoControlViewModel(SelectedTab); - GotoViewModel.PropertyChanged += GotoPropertyChanged; + UpdateGotoViewModel(); } } } @@ -407,6 +405,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels { if (selectedIndex == tabs.Count) TryUpdate(ref selectedIndex, tabs.Count - 1, nameof(SelectedIndex)); CollectionChanged?.Invoke(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, tab, index)); } + UpdateGotoViewModel(); return; } @@ -448,6 +447,12 @@ namespace HavenSoft.HexManiac.Core.ViewModels { } } + private void UpdateGotoViewModel() { + GotoViewModel.PropertyChanged -= GotoPropertyChanged; + GotoViewModel = new GotoControlViewModel(SelectedTab); + GotoViewModel.PropertyChanged += GotoPropertyChanged; + } + private void ForwardDelayedWork(object sender, Action e) => RequestDelayedWork?.Invoke(this, e); private void TabPropertyChanged(object sender, PropertyChangedEventArgs e) { diff --git a/src/HexManiac.Core/ViewModels/GotoControlViewModel.cs b/src/HexManiac.Core/ViewModels/GotoControlViewModel.cs index c49a21e2..98b28821 100644 --- a/src/HexManiac.Core/ViewModels/GotoControlViewModel.cs +++ b/src/HexManiac.Core/ViewModels/GotoControlViewModel.cs @@ -25,7 +25,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels { set { if (viewPort == null) return; if (TryUpdate(ref text, value)) { - var options = viewPort.Model.GetAutoCompleteAnchorNameOptions(text); + var options = viewPort.Model?.GetAutoCompleteAnchorNameOptions(text) ?? new string[0]; AutoCompleteOptions = CreateAutoCompleteOptions(options, options.Count); ShowAutoCompleteOptions = AutoCompleteOptions.Count > 0; } diff --git a/src/HexManiac.WPF/Windows/MainWindow.xaml b/src/HexManiac.WPF/Windows/MainWindow.xaml index caa2bb66..4a226a1d 100644 --- a/src/HexManiac.WPF/Windows/MainWindow.xaml +++ b/src/HexManiac.WPF/Windows/MainWindow.xaml @@ -182,7 +182,7 @@ - +