gpt4 book ai didi

wpf - 在 WPF 中实现 MVVM 而不使用 System.Windows.Input.ICommand

转载 作者:行者123 更新时间:2023-12-01 14:41:28 25 4
gpt4 key购买 nike

我正在尝试使用 MVVM (Model-View-ViewModel) 模式实现 WPF 应用程序,并且我希望将 View 部分与 Model 和 ViewModel 部分(一个 DLL)放在一个单独的程序集(一个 EXE)中。

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

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

那么,有没有不使用ICommand也能满足WPF绑定(bind)机制的方法呢?

谢谢!

最佳答案

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

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

最简单的示例是带有 Execute 方法的 void 委托(delegate)的包装器。

您所有不同的 GUI 层只需在一个位置从其 native 命令类型转换为您的自定义命令类型。

关于wpf - 在 WPF 中实现 MVVM 而不使用 System.Windows.Input.ICommand,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/503329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com