C# 识别了一个丢弃活动
我在WPF工作。我有以下问题。当我将一个新活动放到设计器中时,我需要在哈希表中存储一些信息。此哈希表必须具有以下结构: 键:活动对象删除值:此活动在运行时创建的变量列表 现在,我在Window类中有以下代码:C# 识别了一个丢弃活动,c#,wpf,workflow-foundation-4,C#,Wpf,Workflow Foundation 4,我在WPF工作。我有以下问题。当我将一个新活动放到设计器中时,我需要在哈希表中存储一些信息。此哈希表必须具有以下结构: 键:活动对象删除值:此活动在运行时创建的变量列表 现在,我在Window类中有以下代码: private void AddDesigner() { this.wd = new WorkflowDesigner(); ------------------------ ModelService ms = wd.Context.Services.Ge
private void AddDesigner()
{
this.wd = new WorkflowDesigner();
------------------------
ModelService ms = wd.Context.Services.GetService<ModelService>();
if (ms != null)
ms.ModelChanged += new EventHandler<ModelChangedEventArgs>(ms_ModelChanged);
}
private void AddDesigner()
{
this.wd=新工作流设计器();
------------------------
ModelService ms=wd.Context.Services.GetService();
如果(毫秒!=null)
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);
}
}
void ms\u ModelChanged(对象发送方,modelchangedventargs e)
{
如果(如ItemsAdded!=null)
{
ModelItem=e.ItemsAdded.FirstOrDefault();
var test=item.GetCurrentValue()作为CountActivity;
RulesDll.ObjectsClass.HashTableActivity.HashActivity.Add(XXXX,lista);
}
else if(e.ItemsRemoved!=null)
{
ModelItem=e.ItemsRemoved.FirstOrDefault();
//mi.Properties[“Variables”].Collection.Remove(n);
}
}
In:RulesDll.ObjectsClass.HashTableActivity.HashActivity.Add(XXXX,lista)
其中XXXX必须是设计器中删除的对象项。。。。好的,正如我所知,在哈希表中添加一个重复的键是不可能的,当我使用以下代码在设计器中删除两个相同的活动时:
RulesDll.ObjectsClass.HashTableActivity.HashActivity.Add(项,列表A)
表示哈希表中允许正常值不重复的错误
那么,我要做什么来识别我放在设计器中的活动呢?为什么不能使用当前活动对象作为键
hashtable.Add(item.GetCurrentValue(), ...);
无论如何,几乎可以肯定的是,Hashtable在内部使用的是System.Object.GetHashCode()
,虽然冲突很难发生
在工作流设计时,您无法访问某种活动唯一id。您只能靠自己。就像我说的,我不知道你想做什么,但听起来不太好 我不知道你想做什么,但听起来不太好!:)这听起来不是一个好的设计。你是否考虑过使用工作流扩展来达到这个目的?谢谢所有的答案!我无法使用item.GetCurrentValue(),因为如果我在设计器中删除两个相同的活动,调试中会显示重复的错误键。。。所以我不知道我要做什么来识别我放弃的每一个活动。。。