在Window.Resources中使用泛型类型
问题描述:
我想在XAML代码的Windows.Resources部分中使用泛型类型。要附加的对象我的泛型集合由的ObservableCollection继承的集合的通知,如下图所示:在Window.Resources中使用泛型类型
public class PresentationModalCollection<T> : ObservableCollection<T>
{
public PresentationModalCollection(List<T> list) : base(list)
{
}
}
有是返回列表中的ObservableCollection,如下图所示的扩展方法:
public static class ExtensionMethods
{
public static PresentationModalCollection<T> ToObservableCollection<T>(this List<T> list)
{
return new PresentationModalCollection<T>(list);
}
}
现在,我想在我的Window.Resources中使用PresentationModalCollection,如下所示:
<Window.Resources>
<LearningWPF:PresentationModalCollection x:Key="customers">
<LearningWPF:Customer FirstName="Mohammad" LastName="Azam" />
</LearningWPF:PresentationModalCollection>
</Window.Resources>
当然,上面的代码不起作用。有没有办法做到这一点,而不必创建一个从ObservableCollection继承的类CustomerCollection?
答
Mike Hillberg有一些extensions可以帮助它,并工作得很好。我同意为每个想要打包的类型创建一个CustomerCollection和集合类型将是霸道。 Sacha Barber也有在XAML中使用泛型的解决方案,但他的网站似乎已经超过了他目前的带宽限制。
我认为它不支持在.NET 3.5中,但对于.NET 4.0,它将被支持。看看下面的链接=> http://msdn.microsoft.com/en-us/library/dd489466(VS.100).aspx – azamsharp 2009-06-24 18:54:32