2010-08-02 26 views
0

我試圖找出正確的方法來做到這一點。從數據類中分離可視屬性?

我有一個使用PropertyGrid作爲控件之一的WinForms應用程序;我正在使用.SelectedObject屬性來分配適當的對象來顯示屬性。

PropertyGrid根據此對象的類屬性使用聲明的屬性來確定視覺事物,例如,如果該項目可見(可瀏覽),則該屬性需要另外的UI呈現(例如,下拉對比文本框)。

例如:

[TypeConverter(typeof(MyTypeConverter))] 
    public string MyAttribute 
    { 
     ... 
    } 

    [Browsable(false)] 
    public string HiddenAttribute 
    { 
     ... 
    } 

不過,我不喜歡這些屬性被強烈地依賴於用戶界面在我,否則不可知數據類的共同交融。

爲PropertyGrid聲明這些必要屬性而不玷污我的數據類的最佳方式是什麼?

回答

0

我有兩個選擇建議:

  1. 使用部分類來把你的屬性,在一個單獨的文件

  2. 或您的屬性

我創建了一個獨立的類個人更喜歡選項#2,但爲了完全實現它,您需要一種機制將屬性對象與主對象相關聯。這樣做的最普通的方法是定義一個接口,該接口將返回屬性對象,並在主對象內實現該接口。然後修改您在PropertyGrid上設置.SelectedObject屬性的代碼,以檢查該接口並在實施時使用屬性對象。