diff --git a/ENI-2/ENI2/ENI2/Controls/EditWindowBase.cs b/ENI-2/ENI2/ENI2/Controls/EditWindowBase.cs index 77272fdd..71aacd43 100644 --- a/ENI-2/ENI2/ENI2/Controls/EditWindowBase.cs +++ b/ENI-2/ENI2/ENI2/Controls/EditWindowBase.cs @@ -6,9 +6,7 @@ using System; using System.Windows; using System.Windows.Controls; using System.ComponentModel; -using System.Windows.Data; -using System.Linq; -using bsmd.database; +using ENI2.Util; namespace ENI2.Controls { @@ -83,44 +81,7 @@ namespace ENI2.Controls protected void ComboBox_KeyUp(object sender, System.Windows.Input.KeyEventArgs e) { ComboBox cmb = sender as ComboBox; - if (cmb == null) return; - if (cmb.ItemsSource == null) return; - - CollectionView itemsViewOriginal = (CollectionView)CollectionViewSource.GetDefaultView(cmb.ItemsSource); - - bool ignoreSelect = ((e.Key == System.Windows.Input.Key.Back) || (e.Key == System.Windows.Input.Key.Delete)); - - itemsViewOriginal.Filter = ((o) => - { - bool result = false; - if (String.IsNullOrEmpty(cmb.Text)) - { - result = true; - } - else - { - if(o is System.Collections.Generic.KeyValuePair) - if(((System.Collections.Generic.KeyValuePair)o).Value.StartsWith(cmb.Text, StringComparison.OrdinalIgnoreCase)) - result = true; - if(o is System.Collections.Generic.KeyValuePair) - if (((System.Collections.Generic.KeyValuePair)o).Value.StartsWith(cmb.Text, StringComparison.OrdinalIgnoreCase)) - result = true; - if (o is string) - if (((string)o).Contains(cmb.Text, StringComparison.OrdinalIgnoreCase)) result = true; - } - //System.Diagnostics.Trace.WriteLine(string.Format("{0} - {1} - {2}", o, cmb.Text, result)); - return result; - }); - - //System.Diagnostics.Trace.WriteLine("---"); - itemsViewOriginal.Refresh(); - - if (!ignoreSelect && (itemsViewOriginal.Count == 1)) - { - // Treffer: Select? - cmb.SelectedItem = itemsViewOriginal.GetItemAt(0); - } - + GlobalStructures.FilterCombobox(cmb, e.Key); } #endregion diff --git a/ENI-2/ENI2/ENI2/DetailBaseControl.cs b/ENI-2/ENI2/ENI2/DetailBaseControl.cs index 8f01d457..fb58f0dd 100644 --- a/ENI-2/ENI2/ENI2/DetailBaseControl.cs +++ b/ENI-2/ENI2/ENI2/DetailBaseControl.cs @@ -7,9 +7,8 @@ using System.Collections.Generic; using System.Windows.Controls; using bsmd.database; -using System.Windows.Media.Imaging; using System.ComponentModel; -using System.Windows.Data; +using ENI2.Util; namespace ENI2 { @@ -215,44 +214,10 @@ namespace ENI2 #region combobox content filtering - protected void ComboBox_KeyUp(object sender, System.Windows.Input.KeyEventArgs e) { - - ComboBox cmb = sender as ComboBox; - if (cmb == null) return; - - bool ignoreSelect = ((e.Key == System.Windows.Input.Key.Back) || (e.Key == System.Windows.Input.Key.Delete)); - - CollectionView itemsViewOriginal = (CollectionView)CollectionViewSource.GetDefaultView(cmb.ItemsSource); - System.Diagnostics.Trace.WriteLine(cmb.Text); - itemsViewOriginal.Filter = ((o) => - { - bool result = false; - if (String.IsNullOrEmpty(cmb.Text)) - { - result = true; - } - else if (o is string) - { - if (((string)o).Contains(cmb.Text, StringComparison.OrdinalIgnoreCase)) result = true; - } - else if (o is System.Collections.Generic.KeyValuePair) - { - if (((System.Collections.Generic.KeyValuePair)o).Value.StartsWith(cmb.Text, StringComparison.OrdinalIgnoreCase)) - result = true; - } - return result; - }); - - itemsViewOriginal.Refresh(); - - if (!ignoreSelect && (itemsViewOriginal.Count == 1)) - { - // Treffer: Select? - cmb.SelectedItem = itemsViewOriginal.GetItemAt(0); - } - + ComboBox cmb = sender as ComboBox; + GlobalStructures.FilterCombobox(cmb, e.Key); } #endregion diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/SecurityDetailControl.xaml b/ENI-2/ENI2/ENI2/DetailViewControls/SecurityDetailControl.xaml index 56b4171d..45ec6659 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/SecurityDetailControl.xaml +++ b/ENI-2/ENI2/ENI2/DetailViewControls/SecurityDetailControl.xaml @@ -68,30 +68,25 @@