gpt4 book ai didi

mvvm - 任何与 RoutedCommand 配合得很好的 MVVM 框架?

转载 作者:行者123 更新时间:2023-12-04 04:32:20 27 4
gpt4 key购买 nike

RoutedCommand 和 RoutedUICommand 对他们有很大帮助。内置对文本和键盘手势的支持。您可以将 RoutedUICommands 集合绑定(bind)到菜单的 ItemsSource,它会自动为您创建和绑定(bind)菜单项。开箱即用的控件自动支持某些命令(剪切、复制、粘贴)。

然而,每当我使用 MVVM 时,我发现路由命令并不适合,因为重复的样板 XAML 和代码隐藏我必须为每个命令编写。当我在做 MVVM 时,我通常会使用 RelayCommand而不是路由命令。这在某些时候是一种适当的解决方法,但它也有缺点——例如,按键手势变成 much more complicated。 .

但是看了罗伯·艾森伯格的"Build your own MVVM Framework" session ,我不再对中继命令及其缺点感到满意。路由命令的唯一问题是重复的样板代码,一旦将重复的代码分解到框架中并应用约定,似乎不再有任何理由不在 MVVM 中使用路由命令。

从技术上讲,这看起来并不难。框架应该只需要绑定(bind)到 View 的 CommandManager.CanExecuteExecuted事件,并应用约定在 ViewModel 上查找方法和属性——例如,当执行 Cut 命令时,在 ViewModel 上查找 ExecuteCut 方法(和 CanExecuteCut 属性)。我可以构建自己的 MVVM 框架,让这一切变得简单。

但我的问题是,是否已经有与 RoutedCommand 一起使用的 MVVM 框架? 我熟悉的唯一 MVVM 框架是 Caliburn.Micro,它目前不支持这种方式的路由命令(这让我感到惊讶,因为它确实支持自己的 Action 冒泡风格)。

最佳答案

SO 中有很多研究马拉松和其他网站,没有找到任何合适的框架来玩 RoutedCommand。

但其中一位 WPF 弟子 Josh Smith已经实现了一个很好的解决方案,将路由命令与 MVVM 结合使用。

您可以查看Using RoutedCommands with a ViewModel in WPF ,它被称为在 MVVM 架构中使用 RoutedCommands 时干净且轻量级。

关于mvvm - 任何与 RoutedCommand 配合得很好的 MVVM 框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4235878/

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