FrameworkElement.Name problem

℡╲_俬逩灬. 提交于 2019-12-30 17:52:40

问题


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?


回答1:


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.




回答2:


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.



来源:https://stackoverflow.com/questions/5413191/frameworkelement-name-problem

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!