浏览代码

Run EnsureSelectedItemVisible on OnSelectedChanged.

BDisp 2 年之前
父节点
当前提交
3e504ca8e8
共有 2 个文件被更改,包括 2 次插入10 次删除
  1. 1 0
      Terminal.Gui/Views/ListView.cs
  2. 1 10
      UnitTests/Views/ListViewTests.cs

+ 1 - 0
Terminal.Gui/Views/ListView.cs

@@ -685,6 +685,7 @@ namespace Terminal.Gui {
 				var value = source?.Count > 0 ? source.ToList () [selected] : null;
 				var value = source?.Count > 0 ? source.ToList () [selected] : null;
 				SelectedItemChanged?.Invoke (this, new ListViewItemEventArgs (selected, value));
 				SelectedItemChanged?.Invoke (this, new ListViewItemEventArgs (selected, value));
 				lastSelectedItem = selected;
 				lastSelectedItem = selected;
+				EnsureSelectedItemVisible ();
 				return true;
 				return true;
 			}
 			}
 
 

+ 1 - 10
UnitTests/Views/ListViewTests.cs

@@ -224,7 +224,6 @@ namespace Terminal.Gui.ViewTests {
 			var source = new List<string> () { "First", "Second" };
 			var source = new List<string> () { "First", "Second" };
 			ListView lv = new ListView (source) { Width = Dim.Fill (), Height = 1 };
 			ListView lv = new ListView (source) { Width = Dim.Fill (), Height = 1 };
 			lv.SelectedItem = 1;
 			lv.SelectedItem = 1;
-			lv.EnsureSelectedItemVisible ();
 			Application.Top.Add (lv);
 			Application.Top.Add (lv);
 			Application.Begin (Application.Top);
 			Application.Begin (Application.Top);
 
 
@@ -512,18 +511,10 @@ Item 2
 Item 3
 Item 3
 Item 4", output);
 Item 4", output);
 
 
+			// EnsureSelectedItemVisible is auto enabled on the OnSelectedChanged
 			lv.SelectedItem = 6;
 			lv.SelectedItem = 6;
 			Application.Refresh ();
 			Application.Refresh ();
 			TestHelpers.AssertDriverContentsWithFrameAre (@"
 			TestHelpers.AssertDriverContentsWithFrameAre (@"
-Item 0
-Item 1
-Item 2
-Item 3
-Item 4", output);
-
-			lv.EnsureSelectedItemVisible ();
-			Application.Refresh ();
-			TestHelpers.AssertDriverContentsWithFrameAre (@"
 Item 2
 Item 2
 Item 3
 Item 3
 Item 4
 Item 4