9

我正在尝试在构造函数中设置 Page 的 Name 属性:

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

但是,我经常收到以下错误消息。

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

哪里x似乎几乎是任何东西,深入研究异常细节似乎并没有提供任何有用的信息(例如 InnerException 为空。)

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

4

2 回答 2

19

Name 属性通常遵循 C#/VB.NET 标识符(即字段)的规则。根据文档

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

根据您传递的参数(即标题),您似乎可能违反了这一点。但是你必须给出一些具体的例子才能确定。

于 2011-03-24T00:19:46.150 回答
1

当然,在发布此消息后不久,我意识到发生了什么。

因为 FrameworkElement.Name 用于创建对象引用,所以您必须确保字符串仅包含对象实例变量名称的有效字符。

请改用 Title 或其他纯文本属性,除非您真的想设置该x:Name属性以供参考。

于 2011-03-24T00:25:15.607 回答