none
怎么解决"无法对元素“”设置 Name 特性值“”。“”在元素“”的范围内,在另一范围内定义它时,已注册了名称。"该问题 RRS feed

  • 问题

  • 我绘制了一个UserControl,除了基本的特点和功能,我还在其中定义了一个Object类型的依赖属性ExpanderContent,绑定UserControl.xaml中的某个ControlContent控件的content属性,用于具体的该UserControl对象的特定区域的外部扩展。不过使用出现了一个问题,如果我设置自己绘制的UserControl实例,并在ExpanderContent属性中添加控件,然后设置name或x:name,启动项目,会出现如下错误

    "无法对元素“”设置 Name 特性值“”。“”在元素“”的范围内,在另一范围内定义它时,已注册了名称。"

    我添加了一个Checkbox在该userControl的ExpanderContent内,用isChecked绑定关联该UserControl的外面的某个控件的属性,然后设置name属性,启动后就出现如上错误,我试着去掉绑定代码,但启动还是有,然后发现只要不设置ExpanderContent内的控件的Name和X:Name属性就不会出现该错误。

    怎么解决这个问题,我必须在UserControl的自己定义的Object类型依赖属性绑定内部的ControlContent控件,并使用xaml添加外部的控件,然后设置外部控件的名字与UserControl外面的控件进行属性绑定关联或者设置事件。不然内部里自己定义的Object类型依赖属性就没有意义,直接在UserControl外部定义控件得了,但那样又得重复绘制模仿UserControl的界面。很麻烦

    2019年9月12日 3:33

全部回复

  • Hi    Trian555,

    UserControl内部的元素无法在外部命名。这里的UserContrl,泛指继承自其他控件,并且带有xaml文件的自定义控件,无论继承自何控件。也就是说,出现在自定义控件xaml中的元素,无法在外部命名。

    你可以尝试看看直接新建Class,直接继承想要继承的控件.

    Best regards

    Yong Lu

    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已建议为答案 ARM830 2019年9月18日 7:22
    2019年9月13日 7:03
    版主