我正在尝试在 XAML 代码的 Windows.Resources 部分中使用泛型类型。要附加对象集合的通知,我的通用集合继承自 ObservableCollection,如下所示:
public class PresentationModalCollection<T> : ObservableCollection<T>
{
public PresentationModalCollection(List<T> list) : base(list)
{
}
}
有一个扩展方法可以为 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中使用泛型的解决方案,但他的网站似乎暂时超过了他的带宽限制。
关于wpf - 在 Window.Resources 中使用通用类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1040190/