如果我的 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/