【问题标题】:What is EditorReuseAttribute really for?EditorReuseAttribute 的真正用途是什么?
【发布时间】:2010-10-30 00:03:44
【问题描述】:

我不知道如何使用这个属性?

【问题讨论】:

    标签: c# attributes componentmodel


    【解决方案1】:

    MSDN表示确实是表示属性编辑器可以重复使用,无需每次都重新创建。

    这是一个性能上的胜利,特别是如果您的编辑器需要在启动时做大量工作,这是可以避免的。除非您 确实有性能问题,否则我不会担心。

    【讨论】:

      【解决方案2】:

      想象你有这样的场景:

      class Complex
      {
         public OtherComplex1 Property1 { get; set; }
         public OtherComplex2 Property2 { get; set; }
         public OtherComplex2 Property3 { get; set; }
         .....
         public OtherComplexN PropertyN { get; set; }
      
      }
      

      您的每个属性都有自己的类型设计器,用于显示一些属性等。

      比如说,您有两个不同的 Complex 类实例 + 一些其他任意类的实例。

      现在,当您像这样在对象之间切换时 - 复杂实例 1 -> 其他 -> 复杂实例 2 - 一切都会正常工作,但如果您执行以下操作:

      复杂实例 1 -> 复杂实例 2,您会注意到属性没有被刷新。

      这是属性网格的默认行为,它试图优化数据刷新操作的数量。除非您想烘烤很多逻辑以便保持设计人员更新,我建议将ComplexTypes与Editor Reuse属性设置为False标记 - 在这种情况下,只要选择更改为不同的实例,就会将属性网格仍然刷新设计师。

      【讨论】:

        【解决方案3】:

        如果您不知道它的作用,为什么需要使用它?您是否有任何当前正在使用它的代码可以作为示例发布?

        听起来它允许您定义您的属性的属性编辑器可以在不重新启动的情况下重复使用。我不太确定为什么这会有用。

        【讨论】:

          猜你喜欢
          • 2020-08-07
          • 2020-02-02
          • 2012-05-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-09
          相关资源
          最近更新 更多