微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我正在尝试使用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层只需要在一个位置从其本机命令类型转换为自定义命令类型.

原文地址:https://www.jb51.cc/windows/366422.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐