【发布时间】:2015-07-15 21:48:28
【问题描述】:
在我的 WPF 应用程序中,有一个自定义值转换器,其中 Convert 方法接收一个 ReadOnlyObservableCollection 值参数。
在 XAML 中通过以下绑定调用此值转换器:
<TextBlock Grid.Column="2" Text="{Binding Items, Converter={StaticResource totalCutsConverter}}"/>
Items 来自 CollectionViewSource 的位置,其分组描述如下:
<CollectionViewSource x:Key="sheetsViewSource" Source="{Binding}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="MaterialDescription" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
问题是:如何让我的值转换器接收我的特定项目类型(模型类)的集合而不是通用对象类?
换句话说,我想在我的 Convert 方法中进行以下转换
ReadOnlyObservableCollection<myClass> col = value as ReadOnlyObservableCollection<myClass>();
有什么想法吗?
【问题讨论】:
-
IValueConverter没有通用变体,因此您只需检查传入对象是否具有预期类型并将其转换到您的Convert方法中。 -
您已经可以在您的
Convert方法中执行该转换,是什么阻止了您?另一个不同的问题是您的value对象实际上不是ReadOnlyObservableCollection... 但这与转换器无关,毕竟您已绑定到该属性。 -
大家好。我的问题不是关于如何实现值转换器或转换对象。真的。我的问题是如何使绑定机制传递我的特定对象类型的集合而不是通用集合。只是。如果这是不可能的,我可以忍受。但如果有其他方法,我想知道。