2011-02-23 2 views
1

StringDictionary 속성을 사용하여 사용자 정의 컨트롤을 만들고 있습니다.StringDictionary 제대로 serialize되지 않았습니다 winform 디자이너에서 사용자 지정 편집기를 통해 편집 할 때

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 디자이너에 나타납니다 : 나는 다음과 같은 코드를 사용하여 컨트롤 속성 그리드에서이 때에 프로퍼티에 대한 사용자 정의 편집기를 표시하고있다. 그러나 값을 편집 할 때 형식으로 serialize되지 않습니다.

이 나는 ​​뭔가를 놓치고 있습니까? 또는 StringDictionaryEditor에서 지원하지 않습니까?

감사합니다.

+0

항목을 수정 한 다음 다른 속성을 변경하여 코드를 다시 생성하면 작동합니까? –

+0

아니요, 작동하지 않습니다. 아이디어를 가져 주셔서 감사합니다! – Julien

답변

1

StringDictionary은 IList의 및 DesignerSerializationVisibility.Content에 필요한 ICollection에이 작업을 구현하지 않습니다.

+0

NameValueCollection과 같은 내장 편집기로 StringDictionary 대신 사용할 수 있습니까? 그리고 있다면 일치하는 편집기는 무엇입니까? – Julien