代码之家  ›  专栏  ›  技术社区  ›  Ugur Turan

wpf:无法在xaml中设置只读集合的项

  •  2
  • Ugur Turan  · 技术社区  · 16 年前

    情况很简单。我有一个自定义控件的只读集合属性,我想用xaml设置集合的项。这样地:

    <l:CustomControl>
       <l:CustomControl.ControlItems>
         <l:CustomItem />
         <l:CustomItem />
      </l:CustomControl.ControlItems>
    </l:CustomControl>
    

    这个 ControlItems 财产已 internal set public get 访问器,类型为 FreezableCollection<CustomItem> .

    问题是我得到的构建错误表明这是不可能的,因为 控制权 属性没有可访问的 set 访问器。

    据我所知,这个场景在wpf中是受支持的(从.net3.5sp1开始)。我错了吗?有什么问题吗?这与 Grid.RowDefinitions ,我尝试添加 DesignerSerializationVisibility 属性,但它不起作用。

    编辑:我注意到只有当我有一个 internal , private protected 设置访问器。当我完全删除访问器时,一切都会正常构建。

    1 回复  |  直到 13 年前
        1
  •  6
  •   Ugur Turan    16 年前

    好的,让我在这里写点东西,把这个标记为回答。如果xaml解析器具有内部、私有或受保护的set方法,则它无法向控件添加项。解决方案是删除内部/私有/受保护的set方法。如果不存在“set”方法,则一切正常。这听起来很愚蠢,但这是事实。

    这个问题也击中了我的一个队友,所以我想人们一定是击中了同一个问题。