diff --git a/ENI-2/ENI2/ENI2/App.xaml.cs b/ENI-2/ENI2/ENI2/App.xaml.cs index 26a25a8d..2da2e53a 100644 --- a/ENI-2/ENI2/ENI2/App.xaml.cs +++ b/ENI-2/ENI2/ENI2/App.xaml.cs @@ -69,6 +69,7 @@ namespace ENI2 STAT.VesselTypeDict = LocalizedLookup.getVesselTypes(); STAT.TransportModeDict = LocalizedLookup.getTransportModes(); HAZ.PackageTypes = LocalizedLookup.getPackageTypes(); + LADG.LACodes = LocalizedLookup.getLACodes(); // Connect to locking service (if enabled) diff --git a/ENI-2/ENI2/ENI2/Controls/EditWindowBase.cs b/ENI-2/ENI2/ENI2/Controls/EditWindowBase.cs index 8b432708..77272fdd 100644 --- a/ENI-2/ENI2/ENI2/Controls/EditWindowBase.cs +++ b/ENI-2/ENI2/ENI2/Controls/EditWindowBase.cs @@ -84,8 +84,12 @@ namespace ENI2.Controls { 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; @@ -98,7 +102,10 @@ namespace ENI2.Controls 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(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)); @@ -108,7 +115,7 @@ namespace ENI2.Controls //System.Diagnostics.Trace.WriteLine("---"); itemsViewOriginal.Refresh(); - if (itemsViewOriginal.Count == 1) + if (!ignoreSelect && (itemsViewOriginal.Count == 1)) { // Treffer: Select? cmb.SelectedItem = itemsViewOriginal.GetItemAt(0); diff --git a/ENI-2/ENI2/ENI2/DetailBaseControl.cs b/ENI-2/ENI2/ENI2/DetailBaseControl.cs index 6b526bd6..8f01d457 100644 --- a/ENI-2/ENI2/ENI2/DetailBaseControl.cs +++ b/ENI-2/ENI2/ENI2/DetailBaseControl.cs @@ -215,12 +215,17 @@ 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; - CollectionView itemsViewOriginal = (CollectionView)CollectionViewSource.GetDefaultView(cmb.ItemsSource); + 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; @@ -236,13 +241,13 @@ namespace ENI2 { if (((System.Collections.Generic.KeyValuePair)o).Value.StartsWith(cmb.Text, StringComparison.OrdinalIgnoreCase)) result = true; - } + } return result; }); - - itemsViewOriginal.Refresh(); - if(itemsViewOriginal.Count == 1) + itemsViewOriginal.Refresh(); + + if (!ignoreSelect && (itemsViewOriginal.Count == 1)) { // Treffer: Select? cmb.SelectedItem = itemsViewOriginal.GetItemAt(0); diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml b/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml index 2f36900f..cd28019a 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml +++ b/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml @@ -80,7 +80,7 @@ -