diff --git a/GenshinLyreMidiPlayer.WPF/GenshinLyreMidiPlayer.WPF.csproj b/GenshinLyreMidiPlayer.WPF/GenshinLyreMidiPlayer.WPF.csproj index 337e986..2511257 100644 --- a/GenshinLyreMidiPlayer.WPF/GenshinLyreMidiPlayer.WPF.csproj +++ b/GenshinLyreMidiPlayer.WPF/GenshinLyreMidiPlayer.WPF.csproj @@ -6,7 +6,7 @@ true GenshinLyreMidiPlayer.WPF.App app.manifest - 2.1.0.1 + 2.2.0 item_windsong_lyre.ico enable https://github.com/sabihoshi/GenshinLyreMidiPlayer diff --git a/GenshinLyreMidiPlayer.WPF/ViewModels/MainWindowViewModel.cs b/GenshinLyreMidiPlayer.WPF/ViewModels/MainWindowViewModel.cs index 23bef16..b6837cd 100644 --- a/GenshinLyreMidiPlayer.WPF/ViewModels/MainWindowViewModel.cs +++ b/GenshinLyreMidiPlayer.WPF/ViewModels/MainWindowViewModel.cs @@ -1,7 +1,8 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using GenshinLyreMidiPlayer.Data; using GenshinLyreMidiPlayer.WPF.Views; +using ModernWpf; using ModernWpf.Controls; using Stylet; using StyletIoC; @@ -41,7 +42,7 @@ protected override async void OnViewLoaded() // Work around because events do not conform to the signatures Stylet supports _navView = ((MainWindowView) View).NavView; - _navView.AutoSuggestBox.TextChanged += PlaylistView.OnFilterTextChanged; + _navView.AutoSuggestBox.TextChanged += AutoSuggestBoxOnTextChanged; _navView.SelectionChanged += Navigate; _navView.BackRequested += NavigateBack; @@ -59,6 +60,19 @@ protected override async void OnViewLoaded() await PlaylistView.AddFiles(db.History.Select(midi => midi.Path)); } + private void AutoSuggestBoxOnTextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs e) + { + PlaylistView.OnFilterTextChanged(sender, e); + if (ActiveItem != PlaylistView) + { + var playlist = (NavigationViewItem) _navView.MenuItems + .Cast() + .First(nav => nav.Tag == PlaylistView); + + _navView.SelectedItem = playlist; + } + } + private void NavigateBack(NavigationView sender, NavigationViewBackRequestedEventArgs args) { GoBack();