我创建了一个适用于非集合属性的行为,但Blend设计器没有“看到”带有集合的默认值。例如:
//WORKS!! (Enabled defaults to "true" (good))
private bool enabled = true;
[Category("Physics"), Description("")]
public bool Enabled
{
get { return enabled; }
set
{
enabled = value;
}
}
//DOESN'T WORK! The collection is always blank unless I manually add the items to the collection
private List<Category> collisionCategories = new List<Category>() { Category.All };
[Category("Physics"), Description("")]
public List<Category> CollisionCategories
{
get { return collisionCategories; }
set
{
collisionCategories = value;
}
}
为什么“Category.All”不在我的列表中?
答案 0 :(得分:0)
它是否像这样工作:
private List<Category> collisionCategories =
new List<Category>(new Category[] { Category.All });
答案 1 :(得分:0)
在Blend中,您的收藏品右侧有一个小方块。如果它全黑,那么您的集合具有“默认”值,即您设置的值。如果要覆盖集合属性的默认值,则必须指定要添加到空白集合的项目。然后小方块将显示白色轮廓。
这就是Blend中所有集合属性的工作方式,以及Visual Studio设计器的工作方式。但请放心,如果用户未指定集合的值,则默认值将适用。