private void _miEditDrop_Click(object sender, RoutedEventArgs e) { if (_lv.SelectedItems.Count <= 0 || _tab.List.SelectedItem == null) { return; } try { Table <int, ReadableTuple <int> > query = _tab.ProjectDatabase.GetMetaTable <int>(ServerDbs.Pet); SelectFromDialog select = new SelectFromDialog(query, ServerDbs.Pet, ""); select.Owner = WpfUtilities.TopWindow; if (select.ShowDialog() == true && select.Tuple != null) { if (_lv.SelectedItems.Count <= 0 || _tab.List.SelectedItem == null) { return; } TValue item = (TValue)_tab.List.SelectedItem; var btable = _tab.Table; _evolution = new Evolution(); //if (_lv.Items.OfType<PetEvolutionView>().Any(p => p.ID == select.Id)) { // ErrorHandler.HandleException("An evolution with this ID already exists."); // return; //} try { btable.Commands.Begin(); foreach (var targetEv in _lv.Items.OfType <PetEvolutionView>()) { if (targetEv == _lv.SelectedItem) { targetEv.EvolutionTarget.Target = select.Id; } _evolution.Targets.Add(targetEv.EvolutionTarget); } btable.Commands.Set(item, ServerPetAttributes.Evolution, _evolution.ToString()); } finally { btable.Commands.EndEdit(); } _update(item); _lv.SelectedItem = _lv.Items.OfType <PetEvolutionView>().FirstOrDefault(p => p.ID == select.Id) ?? _lv.SelectedItem; } } catch (Exception err) { ErrorHandler.HandleException(err); } }
private void _selectFromList_Click(object sender, RoutedEventArgs e) { try { Table <int, ReadableTuple <int> > btable = _tab.GenericDatabase.GetMetaTable <int>((ServerDbs)_attribute.AttachedObject); SelectFromDialog select = new SelectFromDialog(btable, (ServerDbs)_attribute.AttachedObject, _textBox.Text); select.Owner = WpfUtilities.TopWindow; if (select.ShowDialog() == true) { _textBox.Text = select.Id; } } catch (Exception err) { ErrorHandler.HandleException(err); } }