问题标签 [delegatecommand]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - DelegateCommand vs RoutedCommand 和手势 - WPF
在构建复合 WPF 应用程序时,DelegateCommand 是否支持手势?我正在尝试创建一个由 MenuItem 和一个 Button 使用的命令,它可以通过键盘快捷键访问,但它位于单独程序集中的类中。
我可以使用 RoutedCommand,但我想尽量减少任何代码隐藏。
silverlight - 为什么我不能将我的 Silverlight 按钮单击绑定到 Prism DelegateCommand
我在 Silverlight 3 和 Prism 中有一个简单的测试应用程序,我只是想将一个按钮单击绑定到我在视图模型上创建的一个简单命令。这是一个测试应用程序,只是为了让指挥工作。当我运行它时,我收到一个绑定错误,告诉我视图找不到命令:
System.Windows.Data 错误:BindingExpression 路径错误:在“Bind1.ShellViewModel”“Bind1.ShellViewModel”上找不到“MyCommand”属性(HashCode=8628710)。BindingExpression: Path='MyCommand' DataItem='Bind1.ShellViewModel' (HashCode=8628710); 目标元素是'System.Windows.Controls.Button'(名称='');目标属性是'Command'(类型'System.Windows.Input.ICommand')..
这是我的外壳视图:
在视图的构造函数中,我实例化了一个 ViewModel(我还不担心使用容器......):
这是我的视图模型:
按钮标签绑定工作正常,因此视图找到 ViewModel OK。
为什么找不到 MyCommand?这让我发疯 - 我显然在做一些非常错误的简单事情......
非常感谢。
wpf - 复合命令不起作用
我正在开发一个复合 MVVM 应用程序并试图让全局绑定事件发生 - 除非它不是!..
尽管 CanRun 返回 true,但默认情况下禁用按钮!!!我遵循了复合指南,但 OnLoadMenu 没有触发!!!
我一直在绕圈子(事件聚合器、DelegateCommands、复合命令)它只是不工作。任何人都可以看看这个并告诉我我错过了什么吗?
unit-testing - 如何对 DelegateCommand 进行单元测试
我正在尝试对我的 ViewModel 和我的 SaveItem(save, CanSave) 委托命令进行单元测试。我想确保调用 CanSave 并在特定条件下返回正确的值。基本上,我如何从我的单元测试中调用委托命令,实际上它更像是一个集成测试。显然,我可以只测试 CanSave 方法的返回值,但我正在尝试使用 BDD 来证明这一点,即。没有代码没有先测试。
c# - 由于 DelegateCommand,WPF 应用程序中的内存泄漏
我刚刚使用 MVVM 模式完成了用 WPF 和 c# 编写的桌面应用程序。在这个应用程序中,我使用了 Delegate Command 实现来包装在我的 ModelView 中公开的 ICommands 属性。问题是这些 DelegateCommands 阻止我的 ModelView 和 View 在关闭视图后被垃圾收集。所以它一直在闲逛,直到我终止整个应用程序。我对应用程序进行了概要分析,我发现这完全是关于将模型视图保存在内存中的委托命令。我怎样才能避免这种情况,这是 mvvm 模式的本质,还是与我植入该模式有关?谢谢。
编辑:这是我如何实现 MVVM 模式的一小部分但完整的部分
第一个:CommandDelegte 类
二:ModelView类
三:后面的窗口代码
第四:我的 XAML
c# - 简化 WPF MVVM 视图模型中的 RelayCommand/DelegateCommand
如果您正在执行 MVVM 并使用命令,您会经常在 ViewModel 上看到由私有 RelayCommand 或 DelegateCommand 字段支持的 ICommand 属性,例如MSDN上原始 MVVM 文章中的示例:
然而,这很混乱,并且使设置新命令相当乏味(我与一些对所有这些输入都犹豫不决的资深 WinForms 开发人员一起工作)。所以我想简化它并挖掘一点。我在 get{} 块的第一行设置了一个断点,发现它只在我的应用程序第一次加载时才被命中——我以后可以根据需要触发任意数量的命令,而这个断点永远不会被命中——所以我想要简化它以消除我的 ViewModel 中的一些混乱,并注意到以下代码的工作方式相同:
但是,我对 C# 或垃圾收集器知之甚少,不知道这是否会导致问题,例如在某些情况下会产生过多的垃圾。这会带来什么问题吗?
c# - DelegateCommand 在哪个命名空间中?
我正在尝试从“.NET Domain Driven Design with C#”中找出一个示例,其中包含一个代码示例,您可以在其中看到声明的一些 type 属性DelegateCommand
。
现在,我尝试用谷歌搜索它,但我在 MSDN 上的任何地方都找不到它的参考资料(实际上,我找到了这篇文章,但不是DelegateCommand
's 文章本身)。
是书中DelegateCommand
的一部分WPF
还是只是在书中创造的东西?
如果它是 WPF(或任何其他 MS 产品)的一部分,它在哪个程序集/命名空间中?
wpf - 在 wpf 中加载窗口时如何触发命令
是否可以触发命令来通知窗口已加载。另外,我没有使用任何 MVVM 框架(从某种意义上说,框架,Caliburn,Onxy,MVVM Toolkit 等,)
wpf - ui 何时与命令分离?
我真的为这个挠头。我有一个打开对话框的主窗口。对话框关闭后,对话框中绑定的命令的 CanExecute 方法仍在执行。这在我的应用程序中造成了一些严重的问题。
例子:
MainWindow 有一个带有点击处理程序的按钮。这是点击事件处理程序:
在对话框中,我将项目控件绑定到对话框窗口中的静态资源,列表中的每个项目都有一个命令:
这是视图模型:
这是 DelegateCommand 的实现:
现在,如果我关闭对话框窗口并在视图模型上的 CanExecute(我正在使用带有弱事件订阅的 Prism DelegateCommand)方法中设置断点,我注意到尽管对话框已关闭,但它仍会触发。为什么对话框中的按钮和 ViewModel 上的命令之间的绑定仍然存在?
我正在通过关闭窗口并稍后在视图模型的“CanClickMe”方法中设置断点来检查它是否正在执行。它会执行一段时间,然后突然停止(可能是由于 GC)。这种不确定的行为会导致问题,因为在实际应用程序中,视图模型可能已经被处理掉了。
wpf - WPF 和 MVVM 问题
如果尝试在 WPF 应用程序中实现我的第一个 MVVM。我有基于 winforms 的旧应用程序,我想使用这个项目中的逻辑(类)。
我有模型,它包含以下类:
以及在服务器上发送 HTTP GET 和 POST 请求的服务类,这个类实现了这个接口:
我尝试使用 WPF Model-View-ViewModel Toolkit 0.1 中的 DelegateCommand。
使用 View 我有任何问题。但我的问题是如何从 ViewModel 中的类 PokecService 中“包装”方法。
使用方法 LogOn 的示例。
首先我创建视图。
启动窗口.xaml
它只包含 2 个 texboxes 和一个按钮,我在 ViewModel 的属性上绑定了按钮 commad。
VieModel StartUpViewModel.cs
在这个类中,我想在 DelegateCommand 上包装 PokecService 类的方法,并将这些方法绑定到 UI 控件上。
我的问题是:
我可以从 ViewModel 中的属性视图中绑定 UI 控件,这没问题。在 ViewModel 中使用 DelegateCommad 从我的类 PokecService 中“包装”方法是一种好方法吗?
在 ViewModel 中创建新窗口/视图很好吗?如何关闭 ViewModel 中的实际视图(窗口)?
这个问题最合适的解决方案是什么?
我想我只需要用 DelegateCommand 变量包装我的方法,并为这些变量属性创建这些属性,并且这些属性绑定在 UI 控件上,但我是 MVVM 的绝对初学者。我读了一些文章,但它们只展示了非常简单的演示。
感谢任何提前。对不起我的英语不好。