Yur*_*riy 8 .net c# propertygrid winforms
我有一个PropertyGrid分配给它的一些对象.
var prpGrid = new PropertyGrid();
prp.SelectedObject = myObject;
Run Code Online (Sandbox Code Playgroud)
我想得到所有网格项,我可以得到selectedGridItem属性:
var selectedProperty = prpGrid.SelectedGridItem;
Run Code Online (Sandbox Code Playgroud)
我可以这样做吗?
这是一段代码,它将检索属性网格的所有GridItem对象:
public static GridItemCollection GetAllGridEntries(PropertyGrid grid)
{
if (grid == null)
throw new ArgumentNullException("grid");
object view = grid.GetType().GetField("gridView", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(grid);
return (GridItemCollection)view.GetType().InvokeMember("GetAllGridEntries", BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Instance, null, view, null);
}
Run Code Online (Sandbox Code Playgroud)
当然,由于这是使用Property Grid的未记录的私有字段,因此不保证将来可以使用:-)
拥有所有GridItem后,可以使用GridItem.GridItemType属性过滤它们.