示例#1
0
		private void SetConsumedResource(IResourceFileItem resource)
		{
			var obj = this.Resource;
			this.ReleaseConsumedResource();
			this.consumedFileResource = resource;
			if (!Equals(obj, this.Resource))
			{
				this.RaiseReferenceChanged();
			}
		}
示例#2
0
		private void UnsubscribeOnNameChange(IResourceFileItem item)
		{
			item.PropertyChanged -= this.ItemPropertyChanged;
			item.PropertyChanging -= this.ItemPropertyChanging;
		}
示例#3
0
		private void ReleaseConsumedResource()
		{
			if (this.consumedResource != null)
			{
				var np = this.consumedResource as INotifyPropertyChanged;
				if (np != null)
				{
					np.PropertyChanged -= this.ConsumedResourcePropertyChanged;
				}
				this.resourceManager.ReleaseResource(this.consumedResource.Type, this.consumedResource.Hash);
				this.consumedResource = null;
			}
			this.consumedFileResource = null;
		}
示例#4
0
		private void ShowEditorFor(IResourceFileItem managed)
		{
			var controlCollection = this.itemsPropertiesSplitter.Panel2.Controls;
			if (managed == null)
			{
				return;
				//while (controlCollection.Count > 0)
				//{
				//    var c = controlCollection[0];
				//    controlCollection.RemoveAt(0);
				//    c.Dispose();
				//}
				//itemsPropertiesSplitter.Panel2Collapsed = true;
				//return;
			}

			if (controlCollection.Count > 0)
			{
				var existingView = (controlCollection[0] as IView);
				if (existingView != null)
				{
					var existingValue = existingView.DataContext.Value;
					if (existingValue != null)
					{
						if (managed.Resource.GetType() == existingValue.GetType())
						{
							existingView.DataContext.Value = managed.Resource;
							return;
						}
					}
				}
			}
			while (controlCollection.Count > 0)
			{
				var c = controlCollection[0];
				controlCollection.RemoveAt(0);
				c.Dispose();
			}

			var view = this.editorEnvironment.EditorFor(managed.Resource, this.history);
			view.DataContext.Value = managed.Resource;
			var v = view as Control;
			v.Dock = DockStyle.Fill;
			controlCollection.Add(v);
			this.currentEditor = view as IEditorView;

			this.itemsPropertiesSplitter.Panel2Collapsed = false;
		}