【问题标题】:StringDictionary not serialized properly when edited through a custom editor in the winform designer通过 Winform 设计器中的自定义编辑器进行编辑时,StringDictionary 未正确序列化
【发布时间】:2011-07-02 14:31:09
【问题描述】:

我正在创建一个带有 StringDictionary 属性的用户控件。我正在使用以下代码在控件属性网格中显示此属性的自定义编辑器:

public partial class SomeUserControl : UserControl
{
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
    [Editor("System.Diagnostics.Design.StringDictionaryEditor,System.Design", "System.Drawing.Design.UITypeEditor, System.Drawing")]
    public StringDictionary Items { get; set; }

    public SomeUserControl()
    {
        Items = new StringDictionary();
        InitializeComponent();
    }
}

当我单击属性时,设计器在 winform 设计器中正确显示。但是,当我编辑这些值时,它们不会在表单中序列化。

我错过了什么吗?还是StringDictionaryEditor不支持?

非常感谢。

【问题讨论】:

  • 如果您修改了 Items 然后更改了另一个属性,从而导致它重新生成代码,它会起作用吗?
  • 不,它不起作用。不过谢谢你的想法!

标签: c# .net winforms windows-forms-designer


【解决方案1】:

StringDictionary 没有实现 DesignerSerializationVisibility.Content 工作所需的 IListICollection

【讨论】:

  • StringDictionary 有没有内置编辑器(如 NameValueCollection)的替代品?如果有,匹配的编辑器是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-14
相关资源
最近更新 更多