首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PropertyGrid

使用PropertyGrid
EN

Stack Overflow用户
提问于 2013-08-30 19:36:15
回答 1查看 105关注 0票数 2

我有一个带有两个属性网格的表单。将第一个网格的SelectedObject属性设置为包含item对象。第二个设置为item.Test

代码语言:javascript
复制
public MainForm()
{
    InitializeComponent();

    Item item = new Item();
    propertyGrid1.SelectedObject = item;
    propertyGrid2.SelectedObject = item.Test;
}

这是Item类的结构:

代码语言:javascript
复制
public class Item
{
    List<int> _test = new List<int>();

    public List<int> Test
    {
        get { return _test; }
        set { _test = value; }
    }
}

下面是UI的外观:

我的问题是,在网格1中,为什么Test属性显示在Int32集合编辑器中,而在网格2中它看起来不同?它们指的是同一个物体,对吧?如何使网格2在Int32集合编辑器中显示Test属性?

EN

回答 1

Stack Overflow用户

发布于 2013-08-30 19:46:45

在第一个窗口中,您将显示一个具有名为Test的成员的对象,即集合;在第二个窗口中,您将显示集合本身-集合不知道名称。

Test is not集合的名称;它是(当被访问时)返回集合的属性的名称。

在代码方面(只是说明性的,注意-这里真正的东西都是PropertyDescriptor等):

代码语言:javascript
复制
var obj = new PropertyTest(); // the outer object

现在,这个对象有一个名为Test的属性,给定"Test",我们就可以获得这个集合:

代码语言:javascript
复制
var collection = obj.Test; // at this point, we have all three

然而,从变量collection (确实是从变量collection引用的对象)获取字符串“”是完全不可能的。实际上,在公开此集合的任何对象或对象集上实际上可以有零个、一个或任意数量的属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18531957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档