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 ?