La forma recomendada por MSDN de acceder a las propiedades de una MasterPage es utilizando la directiva @MasterType. Al colocar esta directiva en nuestra página de contenido, obtenemos una referencia con establecimiento inflexible de tipos a nuestra MasterType.
<%@ MasterType VirtualPath="~/MasterPage.master" %>
Esta directiva tiene dos posibles atributos que son mutuamente excluyentes, VitualPath y TypeName. Es decir, solo podemos utilizar uno de ellos al mismo tiempo. En el ejemplo anterior hacemos referencia a la MasterPage por medio de la ruta vitual. Pero también podríamos hacerlo con idénticos resultados por medio del atributo TypeName y especificando el nombre de la clase de nuestra MasterPage.
De esta forma ya estará a nuestra disposición la referencia a la MasterPage por medio de la propiedad Master de la página de contenido, como vimos en el ejemplo anterior. Por lo tanto podremos acceder a sus propiedades directamente o a sus controles por medio del método FinControl().
Otra forma de tener acceso a los controles de la MasterPage es creando una propiedad del tipo del control. Por ejemplo, para un control Label:
public string TextoLabel
{
get
{
return Label1.Text;
}
set
{
Label1.Text = value;
}
}
public Label ControlLabel
{
get
{
return Label1;
}
set
{
Label1 = value;
}
}
Como vemos podemos crear una propiedad haciendo referencia una propiedad concreta del control (en este caso Label1.Text) o directamente una propiedad del tipo de control para tener acceso a todas sus propiedades y métodos.
Relacionado con este artículo:
Acceder a las propiedades y controles de una MasterPage (I)
Acceder a las propiedades y controles de una ContentPage desde una MasterPage.