加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

在不使用System.Windows.Input.ICommand的情况下在WPF中实现MVVM

发布时间:2020-12-13 23:20:13 所属栏目:Windows 来源:网络整理
导读:我正在尝试使用MVVM(Model-View-ViewModel)模式实现 WPF应用程序,并且我希望View部件位于Model和ViewModel部件(DLL)的单独程序集(EXE)中. 这里的转折是保持Model / ViewModel程序集清除任何WPF依赖项.这样做的原因是我想从具有不同(非WPF)UI技术的可执行文件
我正在尝试使用MVVM(Model-View-ViewModel)模式实现 WPF应用程序,并且我希望View部件位于Model和ViewModel部件(DLL)的单独程序集(EXE)中.

这里的转折是保持Model / ViewModel程序集清除任何WPF依赖项.这样做的原因是我想从具有不同(非WPF)UI技术的可执行文件中重用它,例如Mono下的WinForms或GTK#.

默认情况下,无法执行此操作,因为ViewModel公开了一个或多个ICommands.但是ICommand类型是在属于WPF的System.Windows.Input命名空间中定义的!

那么,有没有办法在不使用ICommand的情况下满足WPF绑定机制?

谢谢!

您应该能够在wpf层和单个命令处理程序类中定义单个WPF自定义路由命令.所有WPF类都可以使用适当的参数绑定到这一个命令.

然后,处理程序类可以将命令转换为您自己在ViewModel层中定义的自定义命令接口,并且独立于WPF.

最简单的示例是使用Execute方法的void委托的包装器.

所有不同的GUI层只需要在一个位置从其本机命令类型转换为自定义命令类型.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读