C# 不保存集合的Compact framework自定义控件

C# 不保存集合的Compact framework自定义控件,c#,windows-mobile,compact-framework,visual-studio-designer,C#,Windows Mobile,Compact Framework,Visual Studio Designer,我正在为compact框架创建一个菜单控件。控件有一个项集合。我可以使用VisualStudio designer添加项,但是,它们永远不会添加到设计器文件中,因此下次打开设计器或生成解决方案时,菜单中不再有任何项 以下是该项目的代码: public class Item { public int ImageIndex { get; set; } private string _text = ""; public string Text { ge

我正在为compact框架创建一个菜单控件。控件有一个项集合。我可以使用VisualStudio designer添加项,但是,它们永远不会添加到设计器文件中,因此下次打开设计器或生成解决方案时,菜单中不再有任何项

以下是该项目的代码:

public class Item
{
    public int ImageIndex { get; set; }

    private string _text = "";
    public string Text
    {
        get { return _text ?? ""; }
        set { _text = value ?? ""; }
    }

    public string Name { get; set; }
}
以下是菜单的相关代码:

public class ItemMenu : Control
{
    public ItemMenu()
    {
        Columns = 4;
        RowHeight = 64;
        ColumnWidth = 64;
        _items.ListChanged += new ListChangedEventHandler(_items_ListChanged);
    }

    private BindingList<Item> _items = new BindingList<Item>();
    public BindingList<Item> Items
    {
        get { return _items; }
    }

    public ImageList NormalImages { get; set; }
    public ImageList SelectedImages { get; set; }

    public int Columns { get; set; }
    public int RowHeight { get; set; }
    public int ColumnWidth { get; set; }
    public int Rows
    {
        get { return (int)Math.Ceiling((double)Items.Count / (double)Columns); }
    }

    private void _items_ListChanged(object sender, ListChangedEventArgs e)
    {
        Refresh();
    }
}
公共类项菜单:控件
{
公共项菜单()
{
列=4;
行高=64;
列宽=64;
_items.ListChanged+=新的ListChangedEventHandler(\u items\u ListChanged);
}
private BindingList_items=new BindingList();
公共绑定列表项
{
获取{return\u items;}
}
公共ImageList NormalImages{get;set;}
公共图像列表选择图像{get;set;}
公共int列{get;set;}
公共整数行高{get;set;}
公共int列宽度{get;set;}
公共整数行
{
获取{return(int)Math.天花((double)Items.Count/(double)Columns);}
}
私有void\u items\u ListChanged(对象发送者,listchangedventargs e)
{
刷新();
}
}

有人知道我如何在visual studio designer中编辑要保存到设计器文件中的项目集合吗?

我将在度假期间尽我所能回答这个问题,但您需要为控件指定一些设计时属性。有一个DesignTimeAttributes文件,可以添加到控件程序集中。这是一个XML文件,我相信它具有XMTA扩展名。在每个类的XML文件中,您可以指定不同的设计时属性,以及将设计时编辑器链接到控件等

您需要试验的属性是属性。我相信您可以将其设置为“内容”,以便正确序列化您的集合


如果您需要更多的指导,我可以在回到有示例的地方时更新我的答案。

我很困惑。在设计器文件中编辑时,不应输入代码。如果您正在输入代码,则不应在“设计器生成的文件”上执行此操作。