public void RemoveItem(ResDictElement item) { if (_Items.Contains(item)) { item.PropertyChanged -= Item_PropertyChanged; _Items.Remove(item); SetModified(); } }
internal ResDictElement AddFromClipboard() { if (Clipboard.ContainsText()) { var text = Clipboard.GetText().Trim(); int n = Math.Min(text.IndexOf('>'), text.IndexOf("/>")); if (text.StartsWith("<") && n > 0) { // add namespaces if (!text.Contains(" xmlns=\"")) { text = text.Insert(n, " xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\""); } if (!text.Contains(" xmlns:x=\"")) { text = text.Insert(n, " xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\""); } // add or modify key if (!text.Contains(" x:Key=\"")) { text = text.Insert(n, " x:Key=\"" + GenerateUniqueKey("Paste") + "\""); } else { n = text.IndexOf(" x:Key=\"") + 8; int n2 = text.IndexOf('\"', n); if (n2 > n) { var key = text.Substring(n, n2 - n); text = text.Remove(n, key.Length); text = text.Insert(n, GenerateUniqueKey(key, "Copy")); } } var xElement = XElement.Parse(text); var e = ResDictElement.FromXElement(this, xElement); e.SetModified(true, true); AddItem(e); return(e); } } return(null); }
private void Load_(string path) { _FileName = path; try { var xDoc = XDocument.Load(FileName); foreach (var xElement in xDoc.Root.Elements()) { AddItem(ResDictElement.FromXElement(this, xElement)); } SetModified(false); } catch (Exception ex) { } NotifyPropertyChanged("FileName"); NotifyPropertyChanged("Name"); }
public void AddItem(ResDictElement item) { _Items.Add(item); item.PropertyChanged += Item_PropertyChanged; SetModified(); }