【发布时间】:2018-06-14 14:11:08
【问题描述】:
我有一个使用 MVVM 模式的 WPF 项目。我有一个接口,为此我将调用 IMyData,我目前有 myDataImplA 和 myDatImplB 的 2 个实现。我希望我的 ViewModel 能够在使用这两种实现之间动态切换。目前,我将接口的两种实现都传递到 ViewModel 的构造函数中,并具有 Boolean 属性,其中 View 中的 ToogleButton 被绑定以确定使用哪一个。我觉得可能有更好的方法来做到这一点,并且传入 IMyData 的两个实现只是感觉不对。此外,如果我最终获得了 IMyData 的第三个实现,我当前使用布尔值来确定要使用的 IMyData 实现的方法将不起作用。
界面可以从视图中即时更新,但这会破坏 MVVM,因为我认为这需要在我的视图中进行额外的代码隐藏。我正在寻找适合 MVVM 的更具可扩展性的解决方案。
【问题讨论】:
-
为什么不用属性注入代替构造函数注入呢?然后,您可以随时将该属性设置为接口的任何实现。
-
我可以通过在视图中绑定 UI 控件来进行属性注入吗?请发布一个简短的示例或一些伪代码。