Wpf – Control de usuario con calificador de acceso Friend

Descripción general

Wpf – En una biblioteca de controles wpf, como se cambia el modificador de acceso a Friend usando los atributos [x:ClassModifier] y [x:FieldModifier]

[TOC] Tabla de Contenidos


↑↑↑

Problema (uno):

Imagina que eta creando un control, más o menos complicado, y para facilitar la tarea, diseñas unos controles auxiliares para componer el conjunto. A la hora de compilarlo como una Dll no interesa que estos controles auxiliares se vean, es decir, hay que cambiar su modificador de acceso a "Friend"


↑↑↑

Solución (uno):

Después de dar muchas vueltas, (pero muchas) la solución es tan sencilla que me he tirado de los pelos pensando en la cantidad de tiempo invertida en encontrarla.

Ejemplo

<UserControl x:Class="Uc_TreeViewDirectory" x:ClassModifier="Friend" (etc, etc) />

Si te aparece un error del tipo:

El acceso especificado 'Public' para 'Uc_NombreControl' no coincide con el acceso 'Friend' especificado en uno de sus tipos parciales

Quiere decir que se te ha olvidado el segundo paso, poner el calificador "Friend" en el código (behind)


↑↑↑

Problema (dos):

Como cambio el calificador de acceso de un control Hijo de un control


↑↑↑

Solución (dos):

Para cambiar el calificador de un control interno (por ejemplo el control Grid, o el control TextBox) hay que dar dos pasos., primero darle nombre con el atributo x:Name y después usar el calificador de acceso con el atributo x:FieldModifier

Ejemplo

<Grid x:Name="nombreParaEsteControlGrid" x:FieldModifier="Private">
   (etc)
   (etc)
</Grid>

Para que esto funcione tienen que estar los dos atributos a la vez. Si falta x:Name, entonces no funciona, aunque el compilador " suele indicar el error" pero no todas las veces.


↑↑↑

A.2.Enlaces

[Para saber mas]
[Grupo de documentos]
[Documento Index]
[Documento Start]
[Imprimir el Documento]
© 1997 - - La Güeb de Joaquín
Joaquín Medina Serrano
Ésta página es española

Codificación
Fecha de creación
Última actualización
[HTML5 Desarrollado usando CSS3]