如何以编程方式调用带有参数的中继命令 wpf mvvm?

How can I invoke relay command with parameter programmatically wpf mvvm?

我知道如何使用 mvvm 模式调用不带参数的中继命令,但是如何使用带参数的命令执行相同的操作?

https://i.stack.imgur.com/o7r5i.jpg
https://i.stack.imgur.com/zNkYR.jpg
https://i.stack.imgur.com/lmw3w.jpg
https://i.stack.imgur.com/iJnF0.jpg

除了命令 属性.

之外,您要将中继命令绑定到的控件(例如 Button / MenuItem)将有一个 CommandParameter 属性

有关用法示例,请参阅 here

要从后台代码执行命令,只需使用所需参数调用其 Invoke() 方法。

如果我没理解错的话,你的命令要求你将 TextEditor 对象作为参数传入,你想知道如何在 XAML 中执行此操作。由于您的 TextEditor 被命名为 XMLView 您只需将其绑定到命令参数;

<KeyBinding Command="{Binding ValidateXMLCommand}" CommandParameter="{Binding ElementName=XMLView}" Modifiers="Control" Key="V" />

注意添加 CommandParameter="{Binding ElementName=XMLView}",这会将 AvalonEdit TextEditor 控件实例作为命令的参数传递。

阅读更多;

如果您想要从 ViewModel(在普通 C# 中)调用 RelayCommand,您将执行以下操作;

if (ValidateXMLCommand.CanExecute(XMLView))
                ValidateXMLCommand.Execute(XMLView);

此外,请不要post代码图片,而是使用代码样式格式化您的代码。