J'ai une classe personnalisée appelée "Paramètre" et une activité personnalisée avec la propriété de collection générique appelée "Paramètres", et je veux définir les liaisons pour l'un des paramètres dans le liste générique de paramètres propriété, j'ai essayé avec activitybind, mais il ne fonctionne pas, est-il possible de le faire avec la fondation de flux de travail? S'il vous plaît voir codes ci-dessous:Comment définir les liaisons pour les propriétés génériques de l'activité personnalisée dans la fondation de workflow
public class Parameter:DependencyObject //A Class
{
public string Name
{
get { return (string)GetValue(NameProperty); }
set { SetValue(NameProperty, value); }
}
// Using a DependencyProperty as the backing store for Name. This enables animation, styling, binding, etc...
public static readonly DependencyProperty NameProperty =
DependencyProperty.Register("Name", typeof(string), typeof(Parameter));
public string Value
{
get { return (string)GetValue(ValueProperty); }
set { SetValue(ValueProperty, value); }
}
// Using a DependencyProperty as the backing store for Value. This enables animation, styling, binding, etc...
public static readonly DependencyProperty ValueProperty =
DependencyProperty.Register("Value", typeof(string), typeof(Parameter));
}
// Une activité personnalisée avec propriété générique
public partial class Activity1 : System.Workflow.ComponentModel.Activity
{
public Activity1()
{
InitializeComponent();
}
protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
{
return base.Execute(executionContext);
}
public List<Parameter> Parameters
{
get { return (List<Parameter>)GetValue(ParametersProperty); }
set { SetValue(ParametersProperty, value); }
}
// Using a DependencyProperty as the backing store for Parameters. This enables animation, styling, binding, etc...
public static readonly DependencyProperty ParametersProperty =
DependencyProperty.Register("Parameters", typeof(List<Parameter>), typeof(Activity1));
// code Designer
#region Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
[System.Diagnostics.DebuggerNonUserCode]
private void InitializeComponent()
{
this.CanModifyActivities = true;
this.activity12 = new ActivityLibrary1.Activity1();
this.activity11 = new ActivityLibrary1.Activity1();
List<Parameter> paras1 = new List<Parameter>();
paras1.Add(new Parameter() { Name = "a", Value = "a" });
paras1.Add(new Parameter() { Name = "b", Value = "b" });
List<Parameter> paras2 = new List<Parameter>();
paras2.Add(new Parameter() { Name = "c", Value = "c" });
paras2.Add(new Parameter() { Name = "d", Value = "d" });
//
// activity12
//
this.activity12.Name = "activity12";
this.activity12.Parameters = paras1;
//
// activity11
//
this.activity11.Name = "activity11";
this.activity11.Parameters = paras2;
ActivityBind bind = new ActivityBind();
bind.Name = activity11.Name;
bind.Path = "Parameters[0].Value";
activity12.Parameters[0].SetBinding(Parameter.ValueProperty, bind);
//
// Workflow1
//
this.Activities.Add(this.activity11);
this.Activities.Add(this.activity12);
this.Name = "Workflow1";
this.CanModifyActivities = false;
}
#endregion
private ActivityLibrary1.Activity1 activity12;
private ActivityLibrary1.Activity1 activity11;