设计师财产|列出名称和值

问题描述 投票:0回答:1

首先我做了什么(更容易解释我想要得到的):

我创建了一个简单的用户控件,其设计属性为List<bool>

[Browsable(true)]
[Description("Select some.")]
[Category("SelectionTest")]
public List<bool> BoolList = new List<bool>();

将此控件拖到我的表单上并检查设计器时,我得到:

enter image description here

这个将打开一个编辑器:

enter image description here

目标:

我想添加另一个类型为string的属性,以便它显示为左侧的显示文本。我不在乎它是否可编辑。

所以一般来说,我需要像List<string, bool>这样的东西,这是不可能的,我知道。不幸的是DictionaryTuple没有工作。打开编辑器时,它仍然是一个显示为Value: (string, bool)的值。

任何人都知道如何将另一个属性放入正确的窗口或更改bools的描述?

非常感谢这里的每一个帮助。我想这将是非常好的知识。想想可能性......

谢谢!

c# properties designer designtime-attributes
1个回答
1
投票

我知道你想要一个名为布尔的人

public partial class UserControl1 : UserControl
{
    [Browsable(true)]
    [Description("Select some.")]
    [Category("Selection Test"), DisplayName("Bool List")]
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
    public List<BoolProperty> BoolList { get; set; } = new List<BoolProperty>();

    public UserControl1()
    {
        InitializeComponent();
    }
}

[Serializable]
public class BoolProperty
{
    public string Name { get; set; }

    public bool Value { get; set; }

    public override string ToString()
    {
        return Name ?? "Empty Boolean Property";
    }
}

好像:

looks like

© www.soinside.com 2019 - 2024. All rights reserved.