• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

Stand By .NET

.NET & SQL Server
  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

关于复杂属性的设计

    最近几天没怎么弄,那个复杂属性无法实现数据的页面持久性也一直没搞定,没怎么研究它,今天弄了一下,莫名其妙的好了,还没明白是为什么,看来还是有必要深入研究一下的。
    
    现在的问题是,对于包含复杂属性的类型,只暴露其读属性,而子属性暴露读写属性,结合类型转换器,在设计期编辑复杂属性,却不能在页面代码中显示编辑的属性值;当将复杂属性暴露读写属性时,则在页面代码中分别显示复杂属性的值及其子属性的值;当将子属性只暴露其读属性,则在页面代码中只显示复杂属性的值。 
    目标是实现暴露复杂类型的只读属性,在其子属性中设置值,在页面代码中保持持久性。

    首先,对于继承自Control类的基类,必须实现ParseChildren(true)和PersistChildren(false)这两个元数据attribute;
    其次,对于复杂类型及其子属性,都需要应用NotifyParentProperty元数据attribute,否则在复杂属性或子属性中设定的值都不能传给子属性或父属性; 
    最后,实现复杂属性,必须使用DesignerSerializationVisibility(DesignerSerializationVisibility.Content)元数据attribute,对于复杂属性在页面中的持久保存方式,实现PersistenceMode元数据attribute即可。

posted on 2006-03-15 09:36  .............  阅读(87)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3