2011-01-08 4 views
1

Ich habe ein Verhalten erstellt, das gut mit Nicht-Sammlungseigenschaften funktioniert, aber der Misch-Designer "sieht" keine Standardwerte mit Sammlungen. Bsp .:Mischverhalten - Standardmäßige Sammlungswerte, die in der Mischung nicht sichtbar sind

//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; 
    } 
} 

Warum ist "Category.All" nicht bereits in meiner Liste?

Antwort

0

In Mischung dort rechts von Ihrer Sammlung Eigentum ein wenig Platz ist. Wenn alles dunkel ist, hat Ihre Sammlung ihren "Standard" -Wert, was der von Ihnen festgelegte Wert ist. Wenn Sie den Standardwert einer Auflistungseigenschaft überschreiben möchten, müssen Sie die Elemente angeben, die Sie der leeren Auflistung hinzufügen möchten. Dann wird das kleine Quadrat einen weißen Umriss zeigen.

Dies ist nur die Art, in der alle Auflistungseigenschaften in Blend arbeiten, und der Visual Studio-Designer für diese Tatsache. Aber seien Sie versichert, dass der Standardwert angewendet wird, wenn der Benutzer keinen Wert für Ihre Sammlung angibt.

0

Ist es so funktionieren:

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

mit dem kompakten Framework, so dass nicht-generische Sammlungen keine Option sind. – vidalsasoon

Verwandte Themen