Domanda

Sto costruendo una serie di attività personalizzate in Windows Workflow e ho bisogno di aggiungere un DependencyProperty che può una serie di valori per quella proprietà, che l'utente può quindi selezionare quando si utilizza l'attività.

es. Vero o Falso.

So come passare semplicemente un default utilizzando il PropertyMetadata, e presumere che dovrò passare un elenco / classe ora il PropertyMetadata?

Qualcuno ha già ottenuto un esempio di come fare questo favore?

(esempio codice qui sotto)

public static DependencyProperty TestProperty = DependencyProperty.Register("Test", typeof(string), typeof(CheckActivity), new PropertyMetadata("True"));
/// <summary>
/// Dependency property for 'TestProperty'
/// </summary>   
[DescriptionAttribute("Whether a True/False entry is required")]
[CategoryAttribute("Settings")]
[BrowsableAttribute(true)]
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
public string Type
{
    get
    {
        return ((string)(base.GetValue(CheckActivity.TestProperty)));
    }
    set
    {
        base.SetValue(CheckActivity.TestProperty, value);
    }
}
È stato utile?

Soluzione

Prima di tutto il Vero / Falso esempio non è grande, in questo caso utilizzare un tipo bool.

Per un oggetto a più valore perché non utilizzare un Enum: -

 public enum ItemEnum
 {
    First,
    Second,
    Third
 }

Ora nel tuo attività: -

 public static DependencyProperty TestProperty = DependencyProperty.Register("Test",  
   typeof(ItemEnum), typeof(TestActivity), new PropertyMetadata(ItemEnum.First));

[Description("Select Item value")]
[Category("Settings")]
[DefaultValue(ItemEnum.First)]
public ItemEnum Type
{
  get
  {
    return (ItemEnum)GetValue(TestActivity.TestProperty);
  }
  set
  {
    SetValue(TestActivity.TestProperty, value);
  }
}

Si noti la semplificazione degli Attributi sulla proprietà. In particolare Browseable essere vero e DesignerSerializationVisiblity essendo visibile sono predefiniti in modo rimuoverli. Anche la griglia proprietà è più facile per il "utente" da utilizzare se il DefaultValue è definito. Nota anche cadere il suffisso "attributo", rende molto più semplice da leggere.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top