diff --git a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs index 8c103d1316..f0a3ec5635 100644 --- a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs +++ b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs @@ -12,11 +12,11 @@ using System.IO; using System.Linq; using System.Text; using System.Windows.Forms; - using ICSharpCode.Core; using ICSharpCode.FormsDesigner.Services; using ICSharpCode.FormsDesigner.UndoRedo; using ICSharpCode.SharpDevelop; +using ICSharpCode.SharpDevelop.Dom; using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Gui; @@ -277,7 +277,7 @@ namespace ICSharpCode.FormsDesigner serviceContainer.AddService(typeof(DesignerOptionService), new SharpDevelopDesignerOptionService()); serviceContainer.AddService(typeof(ITypeDiscoveryService), new TypeDiscoveryService()); serviceContainer.AddService(typeof(MemberRelationshipService), new DefaultMemberRelationshipService()); - serviceContainer.AddService(typeof(ProjectResourceService), new ProjectResourceService(ParserService.GetParseInformation(this.DesignerCodeFile.FileName).CompilationUnit.ProjectContent)); + serviceContainer.AddService(typeof(ProjectResourceService), CreateProjectResourceService()); // Provide the ImageResourceEditor for all Image and Icon properties this.addedTypeDescriptionProviders.Add(typeof(Image), TypeDescriptor.AddAttributes(typeof(Image), new EditorAttribute(typeof(ImageResourceEditor), typeof(System.Drawing.Design.UITypeEditor)))); @@ -329,6 +329,21 @@ namespace ICSharpCode.FormsDesigner LoggingService.Info("Form Designer: END INITIALIZE"); } + ProjectResourceService CreateProjectResourceService() + { + IProjectContent projectContent = GetProjectContentForFile(); + return new ProjectResourceService(projectContent); + } + + IProjectContent GetProjectContentForFile() + { + ParseInformation parseInfo = ParserService.GetParseInformation(this.DesignerCodeFile.FileName); + if (parseInfo != null) { + return parseInfo.CompilationUnit.ProjectContent; + } + return DefaultProjectContent.DummyProjectContent; + } + bool hasUnmergedChanges; void MakeDirty()