私はWPFで作業しています。次の問題があります。新しいアクティビティをデザイナーにドロップしたとき、いくつかの情報をハッシュテーブルに保存する必要があります。このハッシュテーブルは、次の構造である必要があります。
キー: ACTIVITY OBJECT DROPPED VALUE: このアクティビティが実行時に作成する変数のリスト。
現在、Window クラスに次のコードがあります。
private void AddDesigner()
{
this.wd = new WorkflowDesigner();
------------------------
ModelService ms = wd.Context.Services.GetService<ModelService>();
if (ms != null)
ms.ModelChanged += new EventHandler<ModelChangedEventArgs>(ms_ModelChanged);
}
および ms_ModelChanged:
void ms_ModelChanged(object sender, ModelChangedEventArgs e)
{
if (e.ItemsAdded != null)
{
ModelItem item = e.ItemsAdded.FirstOrDefault<ModelItem>();
var test = item.GetCurrentValue() as CountActivity;
RulesDll.ObjectsClass.HashTableActivity.HashActivity.Add(XXXX, lista);
}
else if (e.ItemsRemoved != null)
{
ModelItem item = e.ItemsRemoved.FirstOrDefault<ModelItem>();
//mi.Properties["Variables"].Collection.Remove(n);
}
}
In: RulesDll.ObjectsClass.HashTableActivity.HashActivity.Add(XXXX, lista);
XXXX は、デザイナーにドロップされたオブジェクト項目である必要があります..OK、私が知っているように、ハッシュテーブルに重複キーを追加することは不可能です.si 次のコードを使用してデザイナーに 2 つの同じアクティビティをドロップすると:
RulesDll.ObjectsClass.HashTableActivity.HashActivity.Add(item, lista);
NOT DUPLICATED 値は通常どおりハッシュテーブルで許可されるというエラー....
では、デザイナーにドロップしたアクティビティを特定するにはどうすればよいでしょうか?