Pregunta

Estoy intentando establecer la propiedad de nombre de una página en el constructor:

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

Sin embargo, yo con frecuencia Obtenga el siguiente mensaje de error.

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

Dónde x Parece ser casi cualquier cosa, profundizar en los detalles de la excepción no parece proporcionar ninguna información útil (por ejemplo, la innerexcepción es nula).

¿Alguien sabe lo que está pasando aquí?

¿Fue útil?

Solución

La propiedad de nombre generalmente sigue las reglas de los identificadores C#/vb.net (es decir, campos). Basado en el documentación:

Los valores de cadena utilizados para el nombre tienen algunas restricciones, según lo impuesto por la directiva X: Nombre definida por la especificación XAML. En particular, un nombre debe comenzar con una letra o el carácter inferior (_), y debe contener solo letras, dígitos o subrayos.

Según el parámetro que está pasando (es decir, el título), parece que puede violarlo. Pero tendría que dar algunos ejemplos específicos para estar seguro.

Otros consejos

Por supuesto, momentos después de publicar esto, me di cuenta de lo que está pasando.

Debido a que FrameWorkElement.Name se usa para crear referencias de objetos, debe asegurarse de que la cadena contenga solo caracteres válidos para un nombre de variable de instancia de objeto.

Use el título u otra propiedad de texto sin formato, a menos que realmente desee establecer el x:Name propiedad para referencia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top