示例#1
0
        void NamedItemList_AfterSet(object sender, SetEventArgs <T> e)
        {
            if (_NameDict.ContainsKey(e.OldItem.Name))
            {
                _NameDict.Remove(e.OldItem.Name);
            }
            ;
            _NameDict.Add(e.NewItem.Name, e.NewItem);


            e.OldItem.BeforeNameChange -= new EventHandler <NameChangeEventArgs>(Item_BeforeNameChange);
            e.OldItem.AfterNameChanged -= new EventHandler <NameChangeEventArgs>(Item_AfterNameChanged);

            e.NewItem.BeforeNameChange += new EventHandler <NameChangeEventArgs>(Item_BeforeNameChange);
            e.NewItem.AfterNameChanged += new EventHandler <NameChangeEventArgs>(Item_AfterNameChanged);
        }
示例#2
0
 void NamedItemList_BeforeSet(object sender, SetEventArgs <T> e)
 {
     if (!EqualityComparer <T> .Default.Equals(e.NewItem, e.OldItem))
     {
         if (!_NameDict.ContainsKey(e.NewItem.Name))
         {
             //Name of the new item does not exist.
         }
         else if (_NameDict.ContainsKey(e.NewItem.Name) && EqualityComparer <T> .Default.Equals(e.OldItem, _NameDict[e.NewItem.Name]))
         {
             //Name does exist, but its the name of the old item.
         }
         else
         {
             throw new ArgumentException("Cant set the INamedItem. The name {0} does already exist in the collection.".Build(e.NewItem.Name));
         }
     }
 }