Доступ к структуре файла проекта в сетке свойств Visual Studio Properties? - PullRequest
0 голосов
/ 25 июня 2009

Я создаю Компонент, который будет использоваться в конструкторе перетаскивания VS. Одним из свойств этого компонента должен быть URI пакета файла в проекте.

Я бы хотел немного упростить задачу и из редактора свойств, который PropertyGrid использует для свойства моего типа, изучить решение, создать Uris и представить их пользователю на выбор.

Возможно ли это? И, если да, могу ли я получить некоторые советы и информацию о том, как это сделать?

Ответы [ 2 ]

1 голос
/ 04 июля 2009

Я думаю, что есть пара моментов в этом.

1) Вы можете создать свои собственные редакторы типов для свойства, чтобы решить, как значения свойств будут представлены пользователям с помощью сетки свойств.

Для этого вам нужно создать редактор типов, унаследованный от UITypeEditor, вот так.

public class UriListUIEditor : UITypeEditor
{
       //Override a couple of methods
}

Взгляните на эту статью кода проекта, чтобы увидеть простой пример. http://www.codeproject.com/KB/edit/flagenumeditor.aspx

Теперь укажите атрибут EditorType вашего свойства, например

   [Editor(typeof(Utils. UriListUIEditor ), 
             typeof(System.Drawing.Design.UITypeEditor))]
    public string Uri 
             { get;set;
             }

2) Для итерации решений в вашем проекте получите текущий экземпляр DTE

 var dte = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal. GetActiveObject("VisualStudio.DTE.8.0"); 

И повторять все проекты, чтобы создать список или URI или что-нибудь еще. В идеале вы делаете это внутри метода EditValue вышеупомянутого UriListUIEditor.

  foreach (var project in dte.Solution.Projects)
        {

        }

Надеюсь, это поможет

1 голос
/ 01 июля 2009

Является ли этот компонент только для проектов WPF? Тогда тебе может повезти. Вот запись. http://www.wiredprairie.us/journal/2007/06/pack_syntax_in_wpf.html. Или этот образец MSDN может помочь http://msdn.microsoft.com/en-us/library/aa972152(VS.85).aspx

...