2011-03-24 17 views
5

我试图设置页面的名称属性在构造函数中:FrameworkElement.Name问题

public partial class PageListView : Page 
{ 
    public PageListView(string title) 
    { 
     InitializeComponent(); 
     Name = title; 
    } 
} 

不过,我经常得到以下错误消息。

'x' is not a valid value for property 'Name'. 

x似乎是几乎所有的东西,向下钻取到异常的详细信息似乎并没有提供任何有用的信息(例如设置InnerException为空)。

有谁知道这里发生了什么?

回答

12

Name属性通常遵循C#/ VB.NET标识符(即字段)的规则。基于所述documentation

用于名称的字符串值有一些限制,通过 所施加的基本X:名称指令由XAML规范定义。 最值得注意的是,名称必须以字母或下划线字符 (_)开头,并且只能包含字母,数字或下划线。

根据您传递的参数(即标题),您似乎可能违反了该规定。但是你必须提供一些具体的例子来确定。

+1

是的,我发现只要我张贴:) – ocodo 2011-03-24 00:25:48

1

当然,在发布这些内容之后,我意识到发生了什么。

由于FrameworkElement.Name用于创建对象引用,因此必须确保该字符串仅包含对象实例变量名的有效字符。

改为使用标题或其他纯文本属性,除非您确实要设置x:Name属性以供引用。