/// <summary> /// Handles the double click. /// </summary> /// <param name="lv">The lv.</param> /// <param name="dictionary">The dictionary.</param> private void HandleDoubleClick(Selector lv, IDictionary<string, string> dictionary) { if (lv.SelectedItem == null) { return; } var item = (KeyValuePair<string, string>)lv.SelectedItem; var modal = new EditItem(item.Key, item.Value) { Owner = this }; if ((bool)(!modal.ShowDialog())) { return; } this.SetValueFromModal(modal, dictionary); if (item.Key != modal.Key && dictionary.ContainsKey(item.Key)) { dictionary.Remove(item.Key); } lv.ItemsSource = null; lv.ItemsSource = dictionary; }
/// <summary> /// Sets the value from modal. /// </summary> /// <param name="modal">The modal.</param> /// <param name="items">The items.</param> private void SetValueFromModal(EditItem modal, IDictionary<string, string> items) { this.IsDirty = true; if (items.ContainsKey(modal.Key)) { items[modal.Key] = modal.Value; } else { items.Add(modal.Key, modal.Value); } }
/// <summary> /// Handles the add. /// </summary> /// <param name="lv">The lv.</param> /// <param name="dictionary">The dictionary.</param> private void HandleAdd(ItemsControl lv, IDictionary<string, string> dictionary) { var modal = new EditItem { Owner = this }; if ((bool)(!modal.ShowDialog())) { return; } this.SetValueFromModal(modal, dictionary); lv.ItemsSource = null; lv.ItemsSource = dictionary; }