private static void OnSelectedValuePropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs e) { AutoComplete control = source as AutoComplete; System.Diagnostics.Debug.WriteLine("OnSelectedValuePropertyChanged: " + control.txt.Text); string codigo = ""; if (e.NewValue == null || (e.NewValue != null && String.IsNullOrEmpty(e.NewValue.ToString()))) { codigo = "null"; } else { codigo = e.NewValue.ToString(); } if (control.MapaObjects.ContainsKey(codigo)) { if (control.InternalItemSelected == null || (control.InternalItemSelected != null && control.GetCodigoObject(control.MapaObjects[codigo]) != control.InternalItemSelected.Codigo) ) { control.SetValue(SelectedItemProperty, control.MapaObjects[codigo]); } } }
private static void OnSelectedItemPropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs e) { AutoComplete control = source as AutoComplete; System.Diagnostics.Debug.WriteLine("OnSelectedItemPropertyChanged: " + control.txt.Text); if (control.MapaObjects.Count == 0) { Item item = new Item() { Codigo = "null", Descricao = SELECIONE }; control.Items.Add(item); control.MapaObjects.Add(item.Codigo, null); control.MapaItems.Add(item.Codigo, item); } else if (control.MapaObjects.ContainsKey(control.GetCodigoObject(e.NewValue))) { control.InternalItemSelected = control.MapaItems[control.GetCodigoObject(e.NewValue)]; if (control.InternalItemSelected != null) { control.SetValue(SelectedValueProperty, control.InternalItemSelected.Codigo); control.SetValue(SelectedIndexProperty, control.InternalItemSelected.index); control._bufferSearch.Clear(); if (!control._ehEntrada) { control.LabelLinkItemSelected = control.SetLabelLink(control.GetDescricaoObject(control.MapaObjects[control.InternalItemSelected.Codigo])); control.txt.Text = control.InternalItemSelected.Descricao; control._bufferSearch.Append(control.InternalItemSelected.Descricao); control.FecharPopup(); } else { control.txt.Text = ""; } control.txtHolder.Text = ""; if (control.SelectionChanged != null) { control.SelectionChanged(control, e); } } } }