private void MouseUpReceta(object sender, System.Windows.Input.MouseButtonEventArgs e)
 {
     try
     {
         var popup = AutoCompleteReceta.Template.FindName("PART_Popup", AutoCompleteReceta) as System.Windows.Controls.Primitives.Popup;
         AutoCompleteRecetaLB = AutoCompleteReceta.Template.FindName("PART_ListBox", AutoCompleteReceta) as System.Windows.Controls.ListBox;
         var dep = (System.Windows.DependencyObject)e.OriginalSource;
         while ((dep != null) && !(dep is System.Windows.Controls.ListBoxItem))
         {
             dep = System.Windows.Media.VisualTreeHelper.GetParent(dep);
         }
         if (dep == null)
         {
             return;
         }
         var item = AutoCompleteRecetaLB.ItemContainerGenerator.ItemFromContainer(dep);
         if (item == null)
         {
             return;
         }
         if (item is RecetaMedica)
         {
             ListRecetas = ListRecetas ?? new System.Collections.ObjectModel.ObservableCollection <RecetaMedica>();
             if (!ListRecetas.Any(a => a.PRODUCTO.ID_PRODUCTO == ((RecetaMedica)item).PRODUCTO.ID_PRODUCTO))
             {
                 ListRecetas.Insert(0, new RecetaMedica
                 {
                     CANTIDAD      = new decimal?(),
                     DURACION      = new short?(),
                     HORA_MANANA   = false,
                     HORA_NOCHE    = false,
                     HORA_TARDE    = false,
                     MEDIDA        = ((RecetaMedica)item).MEDIDA,
                     OBSERVACIONES = string.Empty,
                     PRESENTACION  = 0,
                     PRODUCTO      = ((RecetaMedica)item).PRODUCTO,
                 });
                 AutoCompleteReceta.Text = string.Empty;
                 AutoCompleteReceta.Focus();
             }
             else
             {
                 popup.IsOpen = false;
             }
         }
     }
     catch (System.Exception ex)
     {
         StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al seleccionar una enfermedad.", ex);
     }
 }
 private void KeyDownReceta(object sender, System.Windows.Input.KeyEventArgs e)
 {
     try
     {
         if (e.Key == System.Windows.Input.Key.Enter || e.Key == System.Windows.Input.Key.Return)
         {
             var popup = AutoCompleteReceta.Template.FindName("PART_Popup", AutoCompleteReceta) as System.Windows.Controls.Primitives.Popup;
             AutoCompleteRecetaLB = AutoCompleteReceta.Template.FindName("PART_ListBox", AutoCompleteReceta) as System.Windows.Controls.ListBox;
             var dep = (System.Windows.DependencyObject)e.OriginalSource;
             while ((dep != null) && !(dep is System.Windows.Controls.ListBoxItem))
             {
                 dep = System.Windows.Media.VisualTreeHelper.GetParent(dep);
             }
             if (dep == null)
             {
                 return;
             }
             var item = AutoCompleteRecetaLB.ItemContainerGenerator.ItemFromContainer(dep);
             if (item == null)
             {
                 return;
             }
             if (item is RecetaMedica)
             {
                 ListRecetas = ListRecetas ?? new System.Collections.ObjectModel.ObservableCollection <RecetaMedica>();
                 if (!ListRecetas.Any(a => a.PRODUCTO.ID_PRODUCTO == ((RecetaMedica)item).PRODUCTO.ID_PRODUCTO))
                 {
                     ListRecetas.Insert(0, (RecetaMedica)item);
                     AutoCompleteReceta.Text = string.Empty;
                     AutoCompleteReceta.Focus();
                 }
                 else
                 {
                     popup.IsOpen = false;
                 }
             }
         }
         else if (e.Key == System.Windows.Input.Key.Tab)
         {
         }
     }
     catch (System.Exception ex)
     {
         StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al seleccionar un producto.", ex);
     }
 }