2

Windows ワークフローで多数のカスタム アクティビティを作成しています。アクティビティを使用するときにユーザーが選択できる、そのプロパティの値の数を一覧表示できる DependencyProperty を追加する必要があります。

たとえば、True または False です。

PropertyMetadata を使用してデフォルトを簡単に渡す方法を知っていますが、PropertyMetadata でリスト/クラスを渡す必要があると思いますか?

誰かがこれを行う方法の例をすでに持っていますか?

(以下のコード例)

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);
    }
}
4

1 に答える 1

1

まず第一に、True/False の例は良くありません。その場合は bool 型を使用してください。

複数値のアイテムの場合、Enum を使用しない理由:-

 public enum ItemEnum
 {
    First,
    Second,
    Third
 }

今あなたの活動に: -

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

プロパティの属性が簡略化されていることに注意してください。特に、Browseable が true であり、DesignerSerializationVisiblity が Visible であることがデフォルトであるため、それらを削除します。また、DefaultValue が定義されている場合、"ユーザー" はプロパティ グリッドを簡単に使用できます。また、「属性」サフィックスが削除され、読みやすくなっていることに注意してください。

于 2009-11-13T19:12:04.723 に答える