问题标签 [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 关联在 WPF 中?
我正在使用 Prism 并且有CompositeCommand
一个ApplicationCommands.cs
班级:
我有一个DelegateCommand<bool?>
注册到这个CompositeCommand
:
然后它与一个命令处理程序相关联:
它是绑定到ToggleButton
UI 中的 a 的数据,并且运行良好。但是,当我尝试将键盘快捷键与其关联时,它不起作用(使用指定的键)。
这是因为bool参数没有值,所以为null。如果在 UI 中打开了该选项,则键盘快捷键会将其切换为关闭,但永远不会重新打开。请注意,ComandParameter
该类KeyBinding
的 没有传递给关联的命令,但如果是这样就无济于事,因为我需要它在真假之间交替。
因此,我尝试实现该CommandReference
对象,如如何将按键与复合 WPF 中的 DelegateCommand 关联?,但它给出了相同的结果,可为空的 bool 参数始终为空。
然后我尝试为 实现另一个命令KeyBinding
,这将切换值:
这可以正常工作并正确打开和关闭该功能,但在使用键盘快捷键时按钮状态没有任何指示。这对于所有这些方法都是一样的。我的问题是这些可为空的 bool 命令应该如何连接到 aToggleButton
以正确更新按钮的视觉状态,例如。打开和关闭按钮?
wpf - wpf DelegateCommand 返回不触发
当 UserControl-Initialized 事件绑定到 InitializedCommand 时,我正在使用 Mvvm 模式并在 View 中,如下所示。
和 ViewModel 如下。
其他事件(已加载,未加载..)返回部分正常工作,但初始化命令返回不起作用(未调用DoSomething)..
我想知道是什么原因...
c# - 如何在 wpf c# 中实现 CanExecute 命令或 Delegate 命令中的 if、else 语句?
我是WPF
和的新手Prism
。使用/Delegate 命令CommandCanExecute()
时如何使用 if else 语句?CommandExecute()
我有一个代码来加载和获取实时图表的实例。但是,如果用户桌面中不存在图表文件,我的应用程序将崩溃。我想实现一个 if else 语句来说明如果找不到图形,则显示一个消息框,通知有错误,而不是使程序崩溃。
我尝试在 RaiseCanExecuteChanged 上进行搜索,但不确定如何实现。
非常感谢!!
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:对象引用未设置为对象的实例。
提前感谢您的时间和建议。
mvvm - Xamarin Forms Prism 通过 CommandParameter 传递属性
我不知道如何通过 CommandParameter 将单个属性传递给 ViewModel 中的 Command 函数。
现在我传递了整个对象(CategoryListItem),但我只需要来自 Id 属性的值。我怎样才能做到这一点?
班级:
视图模型:
XAML:
转换器:
欢迎任何想法!没有什么对我有用。
c# - 在 MVVM 中使用 DelegateCommand 的异步 CanExecute 方法
我有一个简单的 DelegateCommand 类,如下所示:
我正在使用GalaSoft.MvvmLight
验证,通常我会在 View 构造函数中执行以下操作:
当我有一个简单的验证检查时,这一切都很好:
但现在我需要一个验证方法来执行一个长时间运行的任务(在我的例子中是一个 WebService 调用)所以当我想做这样的事情时:
因此声明这样的命令:
因为标准的 ICommand 实现似乎无法处理异步场景,所以我有点担心。
没有太多考虑,您似乎可以重新编写 DelegateCommand 类以支持此类功能,但我已经研究了 Prism 处理此https://prismlibrary.github.io/docs/commanding.html的方式,但是它似乎他们也不支持异步 CanExecute 方法。
那么,有没有办法解决这个问题?或者在尝试使用 ICommand 从 CanExecute 运行 Async 方法时是否存在根本性的问题?
c# - 如何让 DelegateCommand CanExecute 使用 MVVM 更新 WPF UI?
解决这个问题,我试图用两个按钮制作一个 UI。按下一个按钮会禁用自身并启用另一个按钮。我正在使用 MVVM 模式和 DelegateCommand:
主窗口 XAML
视图模型
委托命令
问题是,当我单击Start Server
按钮时,按钮的 IsEnabled 状态在 UI 中没有改变。我是否不正确地使用了 DelegateCommand?
wpf - WPF DelegateCommand 如何控制何时调用 CanExecute 方法
我在网格列上有一个复选框,它分配了一个命令。我的 CanExecute 方法在我加载窗口和网格中的每个项目时触发,即使我没有单击复选框。我最终会关闭一个消息框对话框循环。
如果焦点没有丢失,它似乎不会经常触发,但在我单击框之前它仍然会触发。
理想情况下,除非我选中复选框,否则我希望它根本不运行。我正在使用Microsoft.VisualStudio.Utilities的 DelegateCommand 。
和视图模型:
xamarin - AutoProperties 不适用于棱镜中的 DelegateCommand.ObservesCanExecute?
在 prism 中的 DelegateCommand 上的 ObservesCanExecute 有一些我不理解的东西。AutoProperties 可以看到一些东西......我认为
我有一个带有按钮的视图,该按钮绑定到我的视图模型中的 DelegateCommand。出于某些原因,在我看来,我像这样捕获 CanExecuteChanged 事件:
问题是,在我的视图模型中,当我使用自动属性声明 IsEnabled 时,视图中的事件不会被触发。就像 ObservesCanExecute 不再起作用一样。正常吗?有什么我做错了吗?我认为 AutoProperties 和 Properties 完全一样......这是我的 ViewModel :
prism - 如何在 Prism 的基于任务的 DelegateCommand 中使用参数
我可以在基于任务的 DelegateCommand (Prism.Commands) 中使用参数: