(比如一个参数和另外一个参数是互斥的,一个参数选中令一个参数就要置灰)简单,每个属性类有一个enable的函数(接口)这个函数来决定是否要enable,缺省true;

解决方案 »

  1.   

    呵呵,楼主,这也有很多种解决办法。如果你的应用还不是很复杂,而且,我们姑且把“很复杂”认为是“能够用相对简单的静态的文本属性来描述”,在这种情况下,那我们就简单地进行描述。而一旦数据之间有了关联,我们就可以认为出现了“动态”的情况,很显然,简单描述通常适应不了这种场合,这也是为什么有很多供应用程序使用的脚本语言如 javascript、VBA、LUA 的出现的原因。
      

  2.   

    顯示對屬性的描述的代碼不需要修改是可以做到的
    比如代表一個屬性項的接口是
    IPropertyEntry
    你可以為之實現一個代表值改變的方法Change
    而顯示屬性的的代碼從IPropertyEntry的另一個方法GetDesc來獲得描述文本
    為每一种屬性做好這個接口的實現
    每一個屬性項一個IPropertyEntry對象
    儅你的屬性改變 你只要重寫這個接口的實現 或者 
    儅某一類接口的特定實例他的Change行爲需要改變 你可以包容這一類屬性的IPropertyEntry接口