簡體   English   中英

如何在PropertyGrid中查看對象屬性?

[英]How do I view object properties in PropertyGrid?

目前,我有一個類型為A的對象,正由PropertyGrid查看。 但是,它的一個屬性是B類.B類屬性是不可擴展的。 我怎樣才能改變這一點:

a)我可以展開自定義對象屬性b)這些更改綁定到該屬性

這是我到目前為止的代碼:

using System;
using System.Windows.Forms;
using System.ComponentModel;

namespace PropGridTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            A a = new A
            {
                Foo = "WOO HOO!",
                Bar = 10,
                BooFar = new B
                {
                    FooBar = "HOO WOO!",
                    BarFoo = 100
                }
            };

            propertyGrid1.SelectedObject = a;
        }
    }
    public class A
    {
        public string Foo { get; set; }
        public int Bar { get; set; }
        public B BooFar { get; set; }
    }
    public class B
    {
        public string FooBar { get; set; }
        public int BarFoo { get; set; }
    }
}

您可以使用ExpandableObjectConverter類來實現此目的。

此類將對象的屬性支持添加到TypeConverter提供的方法和屬性。 要使一種屬性在PropertyGrid中可擴展,請為GetPropertiesSupported和GetProperties的標准實現指定此TypeConverter。

要使用此轉換器,請使用TypeConverterAttribute修飾相關屬性,並使用typeof(ExpandableObjectConverter)作為構造函數參數。

public class A
{
    public string Foo { get; set; }
    public int Bar { get; set; }

    [TypeConverter(typeof(ExpandableObjectConverter))]
    public B BooFar { get; set; }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM