[英]Compact framework custom control with collection not saving
我正在为紧凑框架创建菜单控件。 该控件具有项目的集合。 我可以使用Visual Studio设计器添加项目,但是,它们永远不会添加到设计器文件中,因此,下次我打开设计器或构建解决方案时,菜单将不再包含任何项目。
这是商品的代码:
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();
}
}
在Visual Studio设计器中编辑文件时,有人知道如何将项目集合保存到设计器文件吗?
在假期旅行时,我将尽力解决这个问题,但是您需要为控件指定一些设计时间属性。 您可以将DesignTimeAttributes文件添加到控件程序集中。 我相信它是XML文件,带有XMTA扩展名。 在每个类的XML文件中,您可以指定不同的设计时间属性,以及将设计时间编辑器链接到控件等。
您需要试验的属性是DesignerSerializationVisibility属性。 我相信您可以将其设置为“内容”,以便它可以正确地序列化您的收藏集。
如果您需要更多指导,请回到我的示例中,我可以更新我的答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.