示例#1
0
 public void RemoveItem(ResDictElement item)
 {
     if (_Items.Contains(item))
     {
         item.PropertyChanged -= Item_PropertyChanged;
         _Items.Remove(item);
         SetModified();
     }
 }
示例#2
0
        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);
        }
示例#3
0
        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");
        }
示例#4
0
 public void AddItem(ResDictElement item)
 {
     _Items.Add(item);
     item.PropertyChanged += Item_PropertyChanged;
     SetModified();
 }