如何以编程方式调用带有参数的中继命令 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代码图片,而是使用代码样式格式化您的代码。
我知道如何使用 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代码图片,而是使用代码样式格式化您的代码。