类型''的值无法添加到类型''的集合或字典中

And*_*rIV 5 c# xaml visual-studio-2012 windows-phone-8

我有附属属性InteractionService.Triggers,属于类型TriggersCollection,源于List<ITrigger>.所以我在XAML中添加了一些触发器对象,并且每个触发器对象都实现了接口ITrigger.它工作正常,并且没有任何错误地构建.但是当我将这个库从Silverlight 5移植到Windows Phone 8并尝试将其与上述场景一起使用时,Visual Studio 2012用蓝线强调了这个XAML并告诉它存在这样的错误.当我编译项目时,错误从VS2012中的XAML消失,直到在此XAML文件中进行下一次编辑.我该如何解决这个问题?或者这是VS2012与WP8 SDK的错误?这种情况有解决方法吗?

XAML的片段(由VS2012 + WP8SDK强调,但不是由VS2010 + SL5强调):

<deToolkit:InteractionService.Triggers>
   <deToolkit:EventTrigger EnterEvent="Loaded">
       <deToolkit:CommandSetter Command="{Binding LoadCommand}" />
   </deToolkit:EventTrigger>
</deToolkit:InteractionService.Triggers>
Run Code Online (Sandbox Code Playgroud)

TriggersCollection:

public class TriggersCollection : List<ITrigger> { }
Run Code Online (Sandbox Code Playgroud)

EventTrigger类的标题:

public class EventTrigger : TriggerBase
Run Code Online (Sandbox Code Playgroud)

TriggerBase类的标题:

public class TriggerBase : DependencyObject, ITrigger
Run Code Online (Sandbox Code Playgroud)

类InteractionService的片段:

public sealed class InteractionService : DependencyObject
{
    #region [ADP] Triggers : TriggersCollection (Triggers applied to control)

    public static void SetTriggers(DependencyObject element, TriggersCollection value)
    {
        element.SetValue(TriggersProperty, value);
    }

    public static TriggersCollection GetTriggers(DependencyObject element)
    {
        var triggers = (TriggersCollection)element.GetValue(TriggersProperty);
        if (triggers == null)
        {
            var collection = new TriggersCollection();

            if (!DesignerProperties.IsInDesignTool)
            {
                // -- some code --
            }

            SetTriggers(element, collection);
            return collection;
        }
        return triggers;
    }

    public static readonly DependencyProperty TriggersProperty =
        DependencyProperty.RegisterAttached("Triggers", typeof(TriggersCollection), typeof(InteractionService), null);

    #endregion Triggers
}
Run Code Online (Sandbox Code Playgroud)

错误:

"EventTrigger"类型的值无法添加到"TriggersCollection"类型的集合或字典中.

另一个有时会抛出的错误:

值"EventTrigger"不是"ITrigger"类型,不能在此通用集合中使用.参数名称:value