using System.Collections.Generic; using Terminal.Gui; namespace UICatalog.Scenarios { [ScenarioMetadata (Name: "ComboBoxIteration", Description: "ComboBox iteration.")] [ScenarioCategory ("Controls"), ScenarioCategory ("ComboBox")] public class ComboBoxIteration : Scenario { public override void Setup () { var items = new List () { "one", "two", "three" }; var lbListView = new Label () { AutoSize = false, Width = 10, Height = 1 }; Win.Add (lbListView); var listview = new ListView (items) { Y = Pos.Bottom (lbListView) + 1, Width = 10, Height = Dim.Fill (2) }; Win.Add (listview); var lbComboBox = new Label () { ColorScheme = Colors.TopLevel, X = Pos.Right (lbListView) + 1, Width = Dim.Percent (40) }; var comboBox = new ComboBox () { X = Pos.Right (listview) + 1, Y = Pos.Bottom (lbListView) + 1, Height = Dim.Fill (2), Width = Dim.Percent (40), HideDropdownListOnClick = true }; comboBox.SetSource (items); listview.SelectedItemChanged += (s,e) => { lbListView.Text = items [e.Item]; comboBox.SelectedItem = e.Item; }; comboBox.SelectedItemChanged += (object sender, ListViewItemEventArgs text) => { if (text.Item != -1) { lbComboBox.Text = text.Value.ToString (); listview.SelectedItem = text.Item; } }; Win.Add (lbComboBox, comboBox); Win.Add (new TextField { X = Pos.Right (listview) + 1, Y = Pos.Top (comboBox) + 3, Height = 1, Width = 20 }); var btnTwo = new Button ("Two") { X = Pos.Right (comboBox) + 1, }; btnTwo.Clicked += (s,e) => { items = new List () { "one", "two" }; comboBox.SetSource (items); listview.SetSource (items); listview.SelectedItem = 0; }; Win.Add (btnTwo); var btnThree = new Button ("Three") { X = Pos.Right (comboBox) + 1, Y = Pos.Top (comboBox) }; btnThree.Clicked += (s,e) => { items = new List () { "one", "two", "three" }; comboBox.SetSource (items); listview.SetSource (items); listview.SelectedItem = 0; }; Win.Add (btnThree); } } }