Question

J'essaie de définir la propriété Name d'une page dans le constructeur:

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

Cependant, j'ai souvent le message d'erreur suivant.

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

Là où x semble être presque n'importe quoi, explorer les détails de l'exception ne semble pas fournir d'informations utiles (par exemple, InnerException est nul.)

Quelqu'un sait-il ce qui se passe ici?

Était-ce utile?

La solution

La propriété Name suit généralement les règles des identificateurs C # / VB.NET (c'est-à-dire les champs).Basé sur la documentation :

Les valeurs de chaîne utilisées pour Name ont certaines restrictions, comme imposées par la directive x: Name sous-jacente définie par la spécification XAML. Plus particulièrement, un nom doit commencer par une lettre ou le caractère de soulignement (_) et ne doit contenir que des lettres, des chiffres ou des traits de soulignement.

En fonction du paramètre que vous passez (c'est-à-dire le titre), il semble que vous puissiez enfreindre cela.Mais vous devrez donner quelques exemples spécifiques pour être sûr.

Autres conseils

Bien sûr, quelques instants après avoir publié ceci, j'ai réalisé ce qui se passait.

Étant donné que FrameworkElement.Name est utilisé pour créer des références d'objet, vous devez vous assurer que la chaîne ne contient que des caractères valides pour un nom de variable d'instance d'objet.

Utilisez à la place Title ou une autre propriété de texte brut, sauf si vous souhaitez vraiment définir la propriété x:Name pour le référencement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top