2010-11-16 76 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將在編譯後顯示爲屬性網格中的屬性。訪問屬性Text時,我需要顯示TextAlign。通過使[DisplayName的(「textAlign設置」)]我能夠得到解決,但我希望一些代碼在運行時做出的改變

回答

1

這聽起來像你正在尋找的東西是這樣的:

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

+0

謝謝你,你的迴應,但我沒有正確地問問題,我編輯的問題的話,請檢查 – subbiah 2010-11-16 10:15:03

+0

@subbiah:我兩次閱讀你的問題,但我認爲,提供的鏈接正是你需要的。 – TcKs 2010-11-16 11:47:41

1

使用顯示名稱屬性

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

非常感謝munissor,我得到了答案 – subbiah 2010-11-16 10:29:17

0

你需要定製TypeDescriptor通過屬性TypeDescriptionProviderAttribute連接到您的班級。

在您的自定義TypeDescriptor類中,您需要覆蓋方法GetProperties()並返回PropertyDescriptor類的編輯實例。

所有的* Descriptor類都是元數據類,應該用變化傳播類型/成員 - 例如重命名類型/成員。

一些樣品*描述符類: