Al principio, el compilador XAML se escribió para permitir la creación de "árboles" de objetos .net, había 101 proyectos dentro de Microsoft que usaban XAML. El compilador XAML no sabe nada sobre WPF.
La propiedad "Nombre" está definida por WPF y el compilador XAML no la conoce. WPF mapea la propiedad de nombre para que sea la misma que la "TAG de nombre" que es compatible con el compilador XAML. La "x" en "x: nombre" dice "use" como se define en el esquema XAML xml, "Name" dice que encuentre una propiedad llamada "nombre" en el objeto dado. Vea In WPF, what are the differences between the x:Name and Name attributes? para más detalles.
El compilador XAML es muy limitado en lo que se puede hacer con un control de usuario sin tener que cargar el ensamblado que define el control del usuario. Como el XAML necesita compilarse antes de que se pueda cargar el ensamblado, el compilador xaml claramente no puede cargar el ensamblado para un control que se implementa en el mismo ensamblaje. Por lo tanto, el compilador XAML ni siquiera sabe que el elemento es un control de usuario.
Properties that are defined on a user control (or its parent class) can therefore not be accessed. “Name” is a property that is defined in the parent (or super-parent) of a custom control.
El compilador XAML podría decir "El nombre no está definido como una propiedad"; si lo hizo, piense en cuántas personas dejarán de funcionar un control personalizado simple. Por lo tanto, el compilador XAML tiene un caso especial que proporciona un mensaje de error más útil al "adivinar" qué significa el código. Su suposición es en su mayoría correcta.
Todo lo que no sea el control de usuario más simple necesita estar en su propio conjunto, sin embargo, el control simple del usuario es tan común que se consideró que un caso especial valía la pena.
'Por lo tanto, no se puede acceder a las propiedades que están definidas en un control de usuario (o su clase principal)'. - Eso no tiene sentido para mí. El establecimiento de otras propiedades, definido en la clase base, funciona ' ', por lo que no entiendo por qué el compilador no puede establecer el valor de la propiedad 'Nombre' WPF de la misma manera –
nevermind