问题标签 [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.

0 投票
0 回答
169 浏览

wpf - 将键盘快捷键与 DelegateCommand 关联在 WPF 中?

我正在使用 Prism 并且有CompositeCommand一个ApplicationCommands.cs班级:

我有一个DelegateCommand<bool?>注册到这个CompositeCommand

然后它与一个命令处理程序相关联:

它是绑定到ToggleButtonUI 中的 a 的数据,并且运行良好。但是,当我尝试将键盘快捷键与其关联时,它不起作用(使用指定的键)。

这是因为bool参数没有值,所以为null。如果在 UI 中打开了该选项,则键盘快捷键会将其切换为关闭,但永远不会重新打开。请注意,ComandParameter该类KeyBinding的 没有传递给关联的命令,但如果是这样就无济于事,因为我需要它在真假之间交替。

因此,我尝试实现该CommandReference对象,如如何将按键与复合 WPF 中的 DelegateCommand 关联?,但它给出了相同的结果,可为空的 bool 参数始终为空。

然后我尝试为 实现另一个命令KeyBinding,这将切换值:

这可以正常工作并正确打开和关闭该功能,但在使用键盘快捷键时按钮状态没有任何指示。这对于所有这些方法都是一样的。我的问题是这些可为空的 bool 命令应该如何连接到 aToggleButton以正确更新按钮的视觉状态,例如。打开和关闭按钮?

0 投票
1 回答
250 浏览

wpf - wpf DelegateCommand 返回不触发

当 UserControl-Initialized 事件绑定到 InitializedCommand 时,我正在使用 Mvvm 模式并在 View 中,如下所示。

和 ViewModel 如下。

其他事件(已加载,未加载..)返回部分正常工作,但初始化命令返回不起作用(未调用DoSomething)..

我想知道是什么原因...

0 投票
4 回答
579 浏览

c# - 如何在 wpf c# 中实现 CanExecute 命令或 Delegate 命令中的 if、else 语句?

我是WPF和的新手Prism。使用/Delegate 命令CommandCanExecute()时如何使用 if else 语句?CommandExecute()

我有一个代码来加载和获取实时图表的实例。但是,如果用户桌面中不存在图表文件,我的应用程序将崩溃。我想实现一个 if else 语句来说明如果找不到图形,则显示一个消息框,通知有错误,而不是使程序崩溃。

我尝试在 RaiseCanExecuteChanged 上进行搜索,但不确定如何实现。

非常感谢!!

0 投票
1 回答
499 浏览

c# - 如何使用 xUnit 测试包含 await 的 async void DelegateCommand 方法?

这是我第一次为异步方法编写单元测试。我正在使用xUnit。我搜索了所以没有有希望的结果。我发现但对我没有用的最好的方法是IAsyncLifetime这个例子中实现。对于如何解决此问题的任何提示,我将不胜感激。

目前我所拥有的。在经过测试的虚拟机中,我有一个命令:

public ICommand TestResultsCommand { get; private set; }

该命令在 VM 构造函数中初始化,如下所示:

TestResultsCommand = new DelegateCommand(OnTestResultExecuteAsync);

命令调用方法:

TestHistoricalResultsAsync方法的签名如下:

private async Task TestHistoricalResultsAsync()

现在让我们进入单元测试项目。目前在测试类我有一个方法:

测试让我例外:

消息:System.NullReferenceException:对象引用未设置为对象的实例。

异常的堆栈跟踪是: 在此处输入图像描述

提前感谢您的时间和建议。

0 投票
2 回答
947 浏览

mvvm - Xamarin Forms Prism 通过 CommandParameter 传递属性

我不知道如何通过 CommandParameter 将单个属性传递给 ViewModel 中的 Command 函数。

现在我传递了整个对象(CategoryListItem),但我只需要来自 Id 属性的值。我怎样才能做到这一点?

班级:

视图模型:

XAML:

转换器:

欢迎任何想法!没有什么对我有用。

0 投票
2 回答
540 浏览

c# - 在 MVVM 中使用 DelegateCommand 的异步 CanExecute 方法

我有一个简单的 DelegateCommand 类,如下所示:

我正在使用GalaSoft.MvvmLight验证,通常我会在 View 构造函数中执行以下操作:

当我有一个简单的验证检查时,这一切都很好:

但现在我需要一个验证方法来执行一个长时间运行的任务(在我的例子中是一个 WebService 调用)所以当我想做这样的事情时:

因此声明这样的命令:

因为标准的 ICommand 实现似乎无法处理异步场景,所以我有点担心。

没有太多考虑,您似乎可以重新编写 DelegateCommand 类以支持此类功能,但我已经研究了 Prism 处理此https://prismlibrary.github.io/docs/commanding.html的方式,但是它似乎他们也不支持异步 CanExecute 方法。

那么,有没有办法解决这个问题?或者在尝试使用 ICommand 从 CanExecute 运行 Async 方法时是否存在根本性的问题?

0 投票
2 回答
3029 浏览

c# - 如何让 DelegateCommand CanExecute 使用 MVVM 更新 WPF UI?

解决这个问题,我试图用两个按钮制作一个 UI。按下一个按钮会禁用自身并启用另一个按钮。我正在使用 MVVM 模式和 DelegateCommand:

主窗口 XAML

视图模型

委托命令

问题是,当我单击Start Server按钮时,按钮的 IsEnabled 状态在 UI 中没有改变。我是否不正确地使用了 DelegateCommand?

0 投票
1 回答
66 浏览

wpf - WPF DelegateCommand 如何控制何时调用 CanExecute 方法

我在网格列上有一个复选框,它分配了一个命令。我的 CanExecute 方法在我加载窗口和网格中的每个项目时触发,即使我没有单击复选框。我最终会关闭一个消息框对话框循环。

如果焦点没有丢失,它似乎不会经常触发,但在我单击框之前它仍然会触发。

理想情况下,除非我选中复选框,否则我希望它根本不运行。我正在使用Microsoft.VisualStudio.Utilities的 DelegateCommand 。

和视图模型:

0 投票
1 回答
82 浏览

xamarin - AutoProperties 不适用于棱镜中的 DelegateCommand.ObservesCanExecute?

在 prism 中的 DelegateCommand 上的 ObservesCanExecute 有一些我不理解的东西。AutoProperties 可以看到一些东西......我认为

我有一个带有按钮的视图,该按钮绑定到我的视图模型中的 DelegateCommand。出于某些原因,在我看来,我像这样捕获 CanExecuteChanged 事件:

问题是,在我的视图模型中,当我使用自动属性声明 IsEnabled 时,视图中的事件不会被触发。就像 ObservesCanExecute 不再起作用一样。正常吗?有什么我做错了吗?我认为 AutoProperties 和 Properties 完全一样......这是我的 ViewModel :

0 投票
1 回答
67 浏览

prism - 如何在 Prism 的基于任务的 DelegateCommand 中使用参数

我可以在基于任务的 DelegateCommand (Prism.Commands) 中使用参数:

https://prismlibrary.com/docs/commanding.html