From 654ea35d17c308a158016f39f9276895aea84d7c Mon Sep 17 00:00:00 2001 From: BDisp Date: Wed, 8 Jul 2020 14:57:36 +0100 Subject: [PATCH] UICatalog preserves the SelectedItem of both ListViews. --- UICatalog/UICatalog.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/UICatalog/UICatalog.cs b/UICatalog/UICatalog.cs index a51d5d3e9..8015a1a6b 100644 --- a/UICatalog/UICatalog.cs +++ b/UICatalog/UICatalog.cs @@ -56,6 +56,8 @@ namespace UICatalog { private static StatusItem _capslock; private static StatusItem _numlock; private static StatusItem _scrolllock; + private static int _categoryListViewItem; + private static int _scenarioListViewItem; private static Scenario _runningScenario = null; private static bool _useSystemConsole = false; @@ -191,7 +193,7 @@ namespace UICatalog { _scenarioListView.OpenSelectedItem += _scenarioListView_OpenSelectedItem; _rightPane.Add (_scenarioListView); - _categoryListView.SelectedItem = 0; + _categoryListView.SelectedItem = _categoryListViewItem; _categoryListView.OnSelectedChanged (); _capslock = new StatusItem (Key.CharMask, "Caps", null); @@ -300,6 +302,7 @@ namespace UICatalog { private static void _scenarioListView_OpenSelectedItem (EventArgs e) { if (_runningScenario is null) { + _scenarioListViewItem = _scenarioListView.SelectedItem; var source = _scenarioListView.Source as ScenarioListDataSource; _runningScenario = (Scenario)Activator.CreateInstance (source.Scenarios [_scenarioListView.SelectedItem]); Application.RequestStop (); @@ -396,6 +399,10 @@ namespace UICatalog { private static void CategoryListView_SelectedChanged (ListViewItemEventArgs e) { + if (_categoryListViewItem != _categoryListView.SelectedItem) { + _scenarioListViewItem = 0; + } + _categoryListViewItem = _categoryListView.SelectedItem; var item = _categories [_categoryListView.SelectedItem]; List newlist; if (item.Equals ("All")) { @@ -405,7 +412,8 @@ namespace UICatalog { newlist = _scenarios.Where (t => Scenario.ScenarioCategory.GetCategories (t).Contains (item)).ToList (); } _scenarioListView.Source = new ScenarioListDataSource (newlist); - _scenarioListView.SelectedItem = 0; + _scenarioListView.SelectedItem = _scenarioListViewItem; + } } }