wpf - 是否可以自定义 WPF View 创建机制以使用我自己的 ViewFactory?

标签 wpf datatemplate extensibility

如果我的 View 构造函数需要作为参数的所有依赖项都在我的 IoC 容器中注册,我可以使用 IoC 自己创建 View 而不会出现任何问题。

但如果我尝试广泛使用 DataTemplates,则 WPF 会创建我的 View 。如果 View 没有默认构造函数,则 WPF 将失败并使整个应用程序崩溃。因此我的问题是 - WPF 中是否有任何可扩展性点,以便我可以为其提供 View 工厂,即使它们没有默认构造函数也能够创建我的 View ?

最佳答案

不幸的是,据我所知,答案是否定的。我只是在寻找同样的东西,但 WPF 只能使用无参数构造函数创建用户控件。

一种解决方案是使用服务定位器模式,其中您的 UserControl 可以访问其构造函数中的容器并自行解决其依赖关系。我个人不喜欢这种模式。有些人将服务定位器称为反模式,从长远来看,它会给您带来麻烦。

关于wpf - 是否可以自定义 WPF View 创建机制以使用我自己的 ViewFactory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24222994/

相关文章:

WPF:确定面板是否对用户可见

silverlight - 将 Silverlight TabControl 绑定(bind)到集合

c# - 如何在代码隐藏中创建 HierarchicalDataTemplate?

VimL脚本语言: are there any implementations in other languages?

c++ - 如何设计可扩展的多重继承?

c# - 将图标属性添加到 xaml

c# - 不使用 XAML 进行绑定(bind) [WPF]

Wpf 工具包。将 DataGrid 列标题绑定(bind)到 DynamicResource

windows-phone-7 - 关闭 WP7 中数据绑定(bind)项目的上下文菜单

c# - Visual Studio 加载项。如何禁用菜单项