[ContentProperty("Children")]
public class XX
{
  public XX()
  {
    Children = new List<XXX>();
  }  public List<XXX> Children{ get; private set; }
}在XAML视图里,不能对XX的内容进行编辑,说具有不正确的访问级别。
怎么做到像WPF里的Panel一样,Children是只有get的,但是XAML里又能设置子项。
类似的还有Items等等。

解决方案 »

  1.   

    public List<XXX> Children{ get; /*private*/ set; } 
      

  2.   

    看源码就知道了,给Children一个Attribute
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
      

  3.   

    就是要不能set啊,只能由class来set。
    不然就达不到效果了。这个没用。无法设置元素“Panel”上的内容属性“Children”。“Children”具有不正确的访问级别,或者其程序集不允许访问。 行 8 位置 10.
      

  4.   

    代码中:
    public List<XXX> Children{ get; private set; }
    set方法被设定为private,那样的话,对XX的内容进行编辑,肯定会提示“具有不正确的访问级别。”。
    要不改成这样的:
    public List<XXX> Children{ get; }至于能不能实现成panel这种效果,还真没研究过。
    楼主可以看看panel的介绍,看看能不能找到点提示。
    http://msdn.microsoft.com/zh-cn/library/ms611637.aspx
      

  5.   


    微软的网站都不说的,我上谷歌查了好久也找不到相关资料……
    WPF的Panel的Children属性只有get却能在XAML里设置子项,而且也加有ContentProperty。
    不知如何是好啊,我的这里的Children是个自定义的Collection,里面的方法都被重写了,并且与属性的拥有者息息相关的,所以不能给其它代码set……
      

  6.   


    微软的网站都不说的,我上谷歌查了好久也找不到相关资料……
    WPF的Panel的Children属性只有get却能在XAML里设置子项,而且也加有ContentProperty。
    不知如何是好啊,我的这里的Children是个自定义的Collection,里面的方法都被重写了,并且与属性的拥有者息息相关的,所以不能给其它代码set……
    会不会是在构造函数中来set值的。
      

  7.   


    微软的网站都不说的,我上谷歌查了好久也找不到相关资料……
    WPF的Panel的Children属性只有get却能在XAML里设置子项,而且也加有ContentProperty。
    不知如何是好啊,我的这里的Children是个自定义的Collection,里面的方法都被重写了,并且与属性的拥有者息息相关的,所以不能给其它代码set……
    会不会是在构造函数中来set值的。
    WPF的Panel本来就是在构造函数中set的Children。
    但是自定义类型的属性,被XAML要求拥有set权限,没有set权限就出错。
      

  8.   


    微软的网站都不说的,我上谷歌查了好久也找不到相关资料……
    WPF的Panel的Children属性只有get却能在XAML里设置子项,而且也加有ContentProperty。
    不知如何是好啊,我的这里的Children是个自定义的Collection,里面的方法都被重写了,并且与属性的拥有者息息相关的,所以不能给其它代码set……
    会不会是在构造函数中来set值的。
    WPF的Panel本来就是在构造函数中set的Children。
    但是自定义类型的属性,被XAML要求拥有set权限,没有set权限就出错。
    那你set权限加上,只是设置成private。但是值还是在构造函数中设置,这样不行吗。
      

  9.   


    微软的网站都不说的,我上谷歌查了好久也找不到相关资料……
    WPF的Panel的Children属性只有get却能在XAML里设置子项,而且也加有ContentProperty。
    不知如何是好啊,我的这里的Children是个自定义的Collection,里面的方法都被重写了,并且与属性的拥有者息息相关的,所以不能给其它代码set……
    会不会是在构造函数中来set值的。
    WPF的Panel本来就是在构造函数中set的Children。
    但是自定义类型的属性,被XAML要求拥有set权限,没有set权限就出错。
    那你set权限加上,只是设置成private。但是值还是在构造函数中设置,这样不行吗。
    不行,有没有set方法都不行。
      

  10.   

    我说的那个标上,然后去掉set。
      

  11.   

    发现问题了
    我的Collection是实现接口IList<XXX>,不能通过!
    但是,如果我的Collection继承Collection<XXX>就可以通过!
    很奇怪的问题啊,为什么呢