我正在创建从 ItemsControl
派生的自定义 DataGrid
。我需要访问 ItemsHost ,它是实际保存 Panel
行的 DataGrid
。我见过一些丑陋的技巧来做到这一点,但我认为它们比使用反射更糟糕。
那么我可以使用反射访问 ItemsHost 吗?如何 ?
最佳答案
我可以。这很简单 - 我刚刚在继承自 DataGrid
的类中创建了属性:
protected Panel ItemsHost {
get {
return (Panel) typeof (MultiSelector).InvokeMember("ItemsHost",
BindingFlags.NonPublic | BindingFlags.GetProperty | BindingFlags.Instance,
null, this, null);
}
}
它就像一个魅力:)。我可以获得
ItemsHost
类的 ItemsControl
内部属性的值。这样我就可以访问任何不 protected 属性。关于c# - 我可以使用反射访问 ItemsControl 的 ItemsHost 吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5056728/