wpf - 在 Window.Resources 中使用通用类型

标签 wpf

我正在尝试在 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/

相关文章:

c# - 既然是选择列表,我怎样才能按顺序设置导航?

c# - 通过 XAML 绑定(bind)将自定义对象传递给 UserControl

wpf - Windows 10 顶部的奇怪 strip (wpf)

C# WPF 使用 ItemsControl 管理嵌套结构

c# - 不能使用与其父 Freezable 属于不同线程的 DependencyObject - prism

c# - WPF:有没有办法将图像保存在 Viewport3D 中?

c# - MultiBinding 转换器未绑定(bind)到 DataTemplate 中的 TextBlock

wpf - 如何处理值转换器中的异常,以便显示自定义错误消息

c# - wpf 组合框绑定(bind)

WPF 工作目录