Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c propertygrid,如何刷新特定属性?_C#_Drop Down Menu_Combobox_Refresh_Propertygrid - Fatal编程技术网

C# c propertygrid,如何刷新特定属性?

C# c propertygrid,如何刷新特定属性?,c#,drop-down-menu,combobox,refresh,propertygrid,C#,Drop Down Menu,Combobox,Refresh,Propertygrid,我有关于combobox刷新项的问题c propertygrid 现在组合框项目是a,b,然后按下btn1,我想在组合框中看到1,2,3 首先查看我的源代码 public partial class Window1 : Window { private MyObject instance; public string[] str = new string[] { "a", "b" }; public Window1() { InitializeC

我有关于combobox刷新项的问题c propertygrid

现在组合框项目是a,b,然后按下btn1,我想在组合框中看到1,2,3

首先查看我的源代码

public partial class Window1 : Window
{
    private MyObject instance;
    public string[] str = new string[] { "a", "b" };

    public Window1()
    {
        InitializeComponent();
        instance = new MyObject(this);
        this.propertyGrid1.SelectedObject = instance;

    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        str = new string[] { "1", "2", "3" };
    }

    private void button2_Click(object sender, RoutedEventArgs e)
    {
        this.propertyGrid1.Refresh();
    }
}

public class MyObject
{

    public Window1 refF;

    public MyObject(Window1 f)
    {
        this.refF = f;
    }

    private string objectName;

    [TypeConverter(typeof(ObjectNameConverter))]
    public string ObjectName
    {
        get {
            return objectName;
        }

        set {
            objectName = value;
        }

    }
}

public class ObjectNameConverter : StringConverter
{
    public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
    {
        return true;
    }

    public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
    {
        MyObject refMyObject = context.Instance as MyObject;

        return new StandardValuesCollection(refMyObject.refF.str);
    }
}
按下btn1时,不要更改项目

但我按了btn2,把物品换成了我想要的

如何在不使用刷新的情况下自动更改为组合框列表项

请帮帮我


谢谢。

项目已更改,但需要重新打开组合才能在单击btn1时看到它们,组合将被取消。你到底想刷新什么?让我知道重新打开组合框。这是我的问题。未使用刷新。不清楚要执行什么操作,请解释更多当按下bt1时,comboboxproperty:ObjectName的项被更改。但它需要更新。我想知道如何只刷新一个属性。我在propertygrid有很多财产。