FrameworkElement.Name 问题

发布于 2024-10-25 05:47:31 字数 422 浏览 1 评论 0原文

我试图在构造函数中设置页面的 Name 属性:

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

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

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

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

有人知道这里发生了什么吗?

I am attempting to set the Name property of a Page in the constructor:

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

However, I often get the following error message.

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

Where x seems to be almost anything, drilling down into the exception details doesn't seem to provide any useful information (e.g. the InnerException is null.)

Does anyone know what is happening here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蓝咒 2024-11-01 05:47:31

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

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

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

The Name property generally follows the rules of C#/VB.NET identifiers (i.e. fields). Based on the documentation:

The string values used for Name have some restrictions, as imposed by
the underlying x:Name Directive defined by the XAML specification.
Most notably, a Name must start with a letter or the underscore character
(_), and must contain only letters, digits, or underscores.

Based on the parameter you are passing (i.e. title), it seems like you may violate that. But you'd have to give some specific examples to be sure.

予囚 2024-11-01 05:47:31

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

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

请改用 Title 或其他纯文本属性,除非您确实想要设置 x:Name 属性以供引用。

Of course, moments after posting this I realised what's going on.

Because FrameworkElement.Name is used for creating object references, you have to ensure that the string contains only valid chars for an object instance variable name.

Use Title or another plain text property instead, unless you really want to set the x:Name property for referencing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文