我创建了一个TriggerBase
类,名称为CollectionContainsValueTrigger
。顾名思义,只要包含某个值,触发器就会调用该动作。
但是,我想创建触发器,以便它以接受ObservableCollection
T
的各种ObservableCollection
的方式行事,而不仅仅是ObservableCollection
的显式类型。我尝试了ViewModel
对象,但绑定不起作用,因为Type与ObservableCollection
明确键入的 <i:Interaction.Triggers>
<mi:CollectionContainsValueTrigger Collection="{Binding SomeStronglyTypedViewModelCollection}" Value="Some Value">
<SomeAction />
</mi:CollectionContainsValueTrigger>
</i:Interaction.Triggers>
不同。
我该怎么做?
xaml示例:
{{1}}
答案 0 :(得分:0)
如果没有看到你想要实现的一些例子,很难建议。
如果我理解正确,你的非泛型类需要对不同类型的一些基于泛型的类(如ObservableCollection)进行多态访问
为了适应这种情况,我会使用多态适配器:
class ObservableCollectionAdapterBase
{
virtual void Method1(){}
virtual void Method2(){}
}
class ObservableCollectionAdapter<T, TCollectionType> : ObservableCollectionAdapterBase
where TCollectionType : IObservableCollection<T>
{
public ObservableCollectionAdapter(TCollectionType collection)
{
_collection = collection;
}
override void Method1(){ _collection.DoSomething(); }
override void Method2(){ _collection.DoSomething(); }
}
答案 1 :(得分:0)
好吧,我意识到xaml目前不支持Generics,仅限于未来的版本。如果确实如此,那就解决了我的问题......