Поведение смешивания - значения коллекции по умолчанию не отображаются в смешивании - PullRequest
1 голос
/ 08 января 2011

Я написал поведение, которое хорошо работает со свойствами, не относящимися к коллекции, но конструктор 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" еще нет в моем списке?

Ответы [ 2 ]

0 голосов
/ 09 января 2011

В Blend есть маленькая площадь справа от вашей коллекции. Если все темно, то у вашей коллекции есть значение по умолчанию, то есть значение, которое вы установили. Если вы хотите переопределить значение по умолчанию для свойства коллекции, вам нужно указать элементы, которые вы хотите добавить в пустую коллекцию. Тогда маленький квадрат покажет белый контур.

Это просто способ, которым все свойства коллекции работают в Blend, и дизайнер Visual Studio для этого факта. Но будьте уверены, что если пользователь не укажет значение для вашей коллекции, будет применяться значение по умолчанию.

0 голосов
/ 08 января 2011

Работает ли это так:

private List<Category> collisionCategories =
       new List<Category>(new Category[] { Category.All });
...