I\'m creating custom ItemsControl that is derived from DataGrid. I need to access ItemsHost that is the Panel that actually holds rows
Yes I can. It is simple - I've just created property in class inheriting from DataGrid:
protected Panel ItemsHost {
get {
return (Panel) typeof (MultiSelector).InvokeMember("ItemsHost",
BindingFlags.NonPublic | BindingFlags.GetProperty | BindingFlags.Instance,
null, this, null);
}
}
It works like a charm :). I can get the value of ItemsHost internal property of the ItemsControl class. This way I can access any non-protected properties.