c# - ¿Puedo acceder a ItemsHost of ItemsControl usando reflection?
wpf datagrid (1)
Si puedo. Es simple: acabo de crear una propiedad en clase heredando de DataGrid
:
protected Panel ItemsHost {
get {
return (Panel) typeof (MultiSelector).InvokeMember("ItemsHost",
BindingFlags.NonPublic | BindingFlags.GetProperty | BindingFlags.Instance,
null, this, null);
}
}
Funciona a las mil maravillas :). Puedo obtener el valor de la propiedad interna ItemsHost
de la clase ItemsControl
. De esta forma puedo acceder a cualquier propiedad no protegida.
Estoy creando ItemsControl
personalizado que se deriva de DataGrid
. Necesito acceder a ItemsHost que es el Panel
que realmente contiene filas de DataGrid
. He visto algunos trucos horribles para hacer eso, pero los considero peor que usar el reflejo. Entonces, ¿puedo acceder a ItemsHost usando la reflexión? Y cómo ?