2010-11-16 3 views
0

как изменить имя свойства файла класса во время выполнения, который используется в качестве имущества в PropertyGridизменяя свойства файла класса во время выполнения

бывший)

public class propertygrid_sample 
{ 
    string m_DisplayString; 

    public string Text 
    { 
     get { return m_DisplayString; } 
     set { m_DisplayString = value; } 
    } 

    //some code to change the name 

} 

Когда propertygrid.selectedobject == propertygrid_sample класс объекта, тогда имя Text будет отображаться как свойство в сетке свойств после компиляции. Мне нужно TextAlign, которое будет отображаться при доступе к объекту Text. Делая [DisplayName («TextAlign»)] я смог получить решение, но я ожидал какой-то код, чтобы сделать изменения во время выполнения

ответ

1

Похоже, что вы ищете что-то вроде этого:

http://www.codeproject.com/KB/grid/PropertyGridDynamicProp.aspx

+0

спасибо, за ответ, но я не правильно задал вопрос я редактировал вопрос так, пожалуйста, проверьте его – subbiah

+0

@subbiah: Я дважды читал ваш вопрос, но я думаю, что предоставленная ссылка - именно то, что вам нужно. – TcKs

1

Используйте отображаемое имя атрибута

[DisplayName("Other Name")] 
public string Text { ... } 
+0

Большое спасибо мунисору, я получил ответ – subbiah

0

Вам нужно на заказ TypeDescriptor прилагается к классу с помощью атрибута TypeDescriptionProviderAttribute.

В вашем пользовательском классе TypeDescriptor вам необходимо переопределить метод GetProperties() и вернуть отредактированные экземпляры класса PropertyDescriptor.

Все классы дескрипторов - это классы метаданных, которые должны распространять типы/элементы с изменениями - например, переименование типа/члена.

Некоторые образцы с * дескрипторов классов: