コード例 #1
0
        private void Item_StateChanged(IPersistent sender, StateEventArgs args)
        {
            if (args.NewState == PersistentState.Deleted)
            {
                IReferenceObject item = (IReferenceObject)sender;

                map.Remove(item.Identity);

                item.StateChanged -= Item_StateChanged;
            }
        }
コード例 #2
0
        private void NewItem_StateChanged(IPersistent sender, StateEventArgs args)
        {
            if (args.OldState == PersistentState.New && args.NewState == PersistentState.Original)
            {
                IReferenceObject item = (IReferenceObject)sender;

                map.Add(item.Identity, item);

                item.StateChanged -= NewItem_StateChanged;

                item.StateChanged += Item_StateChanged;
            }
        }
コード例 #3
0
        public void Add(IReferenceObject item)
        {
            if (item == null)
            {
                throw new ArgumentNullException("item");
            }

            if (item.State == PersistentState.New)
            {
                item.StateChanged += NewItem_StateChanged;
            }
            else if (item.State == PersistentState.Virtual)
            {
                item.StateChanged += Item_StateChanged;
            }
        }
コード例 #4
0
 public void AutoRelease(IReferenceObject b)
 {
     _autoreleases.Add(b);
 }
コード例 #5
0
 public void Register(string lookupKey, IReferenceObject referenceObject)
 {
     referenceObjects.TryAdd(lookupKey, referenceObject);
 }
コード例 #6
0
 public bool Get(Guid identity, ref IReferenceObject item)
 {
     return(map.TryGetValue(identity, out item));
 }
コード例 #7
0
		public ObjectDetailsViewModel(IReferenceObject referenceObject)
		{
			ReferenceObject = referenceObject;
			_referencedObjects =
				new ObservableCollection<ReferenceObjectTreeItem>(referenceObject.Fields.Select(p => new ReferenceObjectTreeItem(p.Value)));
		}