View difference between Paste ID: WyKn1vbW and 3BT5CT5U
SHOW: | | - or go back to the newest paste.
1
//Will redo in MVVM later, but the quick and dirty method
2
//Autocomplete with filtering added
3
//Fixed issue with duplicate and empty history items
4
5
// In View.xaml:
6
<ComboBox Name="NovellHistory" HorizontalAlignment="Left" Margin="50,28,0,0" VerticalAlignment="Top" Width="200" IsEditable="True">
7
            <ComboBox.Style>
8
                <Style>
9
                    <EventSetter Event="TextBox.TextChanged" Handler="History_TextChanged" />
10
                </Style>
11
            </ComboBox.Style>
12
        </ComboBox>
13
14
15
// In View.cs:
16
public NovellDesktopView()
17
        {
18
            InitializeComponent();
19
            NovellHistory.ItemsSource = Settings.NovellHistory;
20
        }
21
22
        private void Run_Click(object sender, RoutedEventArgs e)
23
        {
24
            var history = Settings.NovellHistory;
25
            Settings.NovellHistory = AddHistoryItem(history, NovellHistory.Text);
26
        }
27
28-
            output.Add(item);
28+
29
        {
30
            var output = new List<string>();
31
            if (!input.Contains(item) && item.Length > 0)
32
                output.Add(item);
33
            output.AddRange(input);
34
            if (output.Count >= 10)
35
                output.RemoveAt(9);
36
            return output;
37
        }
38
39
        private void History_TextChanged(object sender, TextChangedEventArgs e)
40
        {
41
            var box = (ComboBox)sender;
42
            box.ItemsSource = from entry in Settings.NovellHistory where entry.ToLower().Contains(box.Text.ToLower()) select entry;
43
            box.IsDropDownOpen = true;
44
        }
45
46
//In Settings.Designer.cs
47
        [global::System.Configuration.UserScopedSettingAttribute()]
48
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
49
        [global::System.Configuration.DefaultSettingValueAttribute("")]
50
        public System.Collections.Generic.List<string> NovellHistory
51
        {
52
            get {
53
                return ((System.Collections.Generic.List<string>)(this["NovellHistory"]));
54
            }
55
            set {
56
                this["NovellHistory"] = value;
57
            }
58
        }
59
60
//In my Settings.cs class (because I hate typing out Properties.Settings.Default.SomeSetting)
61
        public static List<string> NovellHistory
62
        {
63
            get { return Properties.Settings.Default.NovellHistory; }
64
            set { Properties.Settings.Default.NovellHistory = value; Properties.Settings.Default.Save(); }
65
        }