草庐IT

ICommand

全部标签

c# - 如何在 MVVM WPF 应用程序中取消窗口关闭

单击“取消”按钮(或右上角的“X”或“Esc”)后如何取消退出特定表单?WPF:View模型:publicclassMyViewModel:Screen{privateCancelCommandcancelCommand;publicCancelCommandCancelCommand{get{returncancelCommand;}}publicMyViewModel(){cancelCommand=newCancelCommand(this);}}publicclassCancelCommand:ICommand{publicCancelCommand(MyViewModelvi

C#/WPF : KeyBinding not triggering Command

我已经声明了出于测试目的,我也添加了绑定(bind)到这些命令的按钮我注意到当启用粘贴按钮时,当我按下Ctrl-V时没有任何反应。Ctrl-C似乎有效。为此,选择了一个列表框项目,我不确定它是否有任何区别。任何人都知道为什么是我的PasteImageCommand不触发?顺便说一句,我正在使用.NET4更新更完整的代码片段更新我发现我需要把KeyBindings在主窗口中,但命令在ViewModel中,如何在ShellView中设置键绑定(bind)然后绑定(bind)到ShellViewModel中的命令? 最佳答案 确保您没有绑

c# - 来自其他对象的 wpf 命令参数

我想知道如何为以下内容标记XAML。我有一个基于ICommand的对象的View模型。我有一个带有文本框和按钮的表单。该按钮通过Command="{BindingMyButtonInViewModel}"连接到ICommand对象。我想做的是将按钮的CommandParameter设置为等于文本框文本中的任何内容,例如调用“搜索”,但显然不知道如何跨控件Hook在View中。 最佳答案 以下XAML应该可以将TextBox中的文本作为参数传递给您的命令。 关于c#-来自其他对象的wpf命

c# - 在 View 模型中使用 ICommand 可以吗

大多数WPFmvvm应用程序,我们在View模型中使用ICommand。但它指的是System.Windows.Input。所以View模型现在与System.Windows.Input命名空间紧密结合。根据我的理解,View模型应该能够在普通的C#winform应用程序或asp.net应用程序中使用。通常我们使用以下代码行来执行RelayCommand实现的命令。privateRelayCommandtestCommand;//orprivateICommandtestCommand;publicICommandTestCommand{get{returntestCommand??(

c# - XAML 中的命令绑定(bind)与 ViewModel 中的 ICommand 属性

我刚刚开始在应用程序中使用MVVM命令。我找到了许多示例,并在我的代码中尝试了两种方法。一些示例在xaml中具有命令绑定(bind),如下所示:...OpenRecentFile_Executed是ViewModel中的一个方法和一个静态ICommand,如下所示:publicstaticreadonlyICommandOpenRecentFile=newRoutedCommand("OpenRecent",typeof(MainWindow));我还看到ViewModel上有一个ICommand类型的属性在View中绑定(bind)到,如下所示:在ViewModel中:private

c# - 通用/类型安全的 ICommand 实现?

我最近开始使用WPF和MVVM框架,我想做的一件事是拥有类型安全的ICommand实现,这样我就不必强制转换所有命令参数。有谁知道这样做的方法吗? 最佳答案 不使用该语法,正如您可能发现的那样:errorCS0701:``System.Func`'isnotavalidconstraint.Aconstraintmustbeaninterface,anon-sealedclassoratypeparameter最好的办法是封装Func界面中的语义,例如:interfaceIFunctor{boolExecute(Evalue);}然

c# - 中继命令可以执行和任务

我想在调用中继命令时启动任务,但是只要该任务正在运行我就想禁用该按钮举个例子privateICommandupdate;publicICommandUpdate{get{if(update==null){update=newRelayCommand(param=>Task.Factory.StartNew(()=>StartUpdate()),param=>true);//truemeansthebuttonwillalwaysbeenabled}returnupdate;}}检查该任务是否正在运行的最佳方法是什么?这是我的解决方案,但不确定这是不是最好的方法classVm:Obser

c# - 如何在 MVVM 中对异步 ICommand 进行单元测试?

我一直在谷歌搜索甚至Bing-ing,但我没有想出任何令人满意的东西。我有一个包含一些命令的ViewModel,例如:SaveCommand、NewCommand和DeleteCommand。我的SaveCommand执行保存到文件操作,我希望它是一个async操作,这样UI就不会等待它。我的SaveCommand是AsyncCommand的一个实例,它实现了ICommand。SaveCommand=newAsyncCommand(asyncparam=>{Connectioncon=awaitConnection.GetInstanceAsync(m_configurationPat

c# - 将按钮绑定(bind)到命令 (Windows Phone 7.5)

我正在开发我的Windows手机应用程序,它使用了一些简单的数据绑定(bind)。我已经创建了一个基于MvvM编程方法的应用程序。我目前正在开发的应用程序也可以通过MvvM方法工作。因为我想让我的代码尽可能干净,所以我一直在寻找一种方法来使“按钮单击事件”(通常发生在代码隐藏页面中)发生在我的View模型或主视图模型中。我在互联网上搜索过需要对Icommand界面进行简单解释的信息,因为我相信这是可行的方法。我发现的解释有问题,其中一些是基于使用CommandRelay函数的MvvMlight工具包。我不想使用MvvMlight工具包,因为我想先了解一下自己。我发现的其他教程是由过度热

c# - 如何使用其 CanExecute 方法启用按钮

我正在使用MVVM在WPF中开发应用程序,但我被ICommand对象困住了。我有一个包含一些按钮的窗口,因此,我将它们绑定(bind)到XAML中各自的ICommand,如下所示:然后,在我的View模型类中,我编写了以下内容:publicclassMyViewModel:ObservableObject{privateboolisDoSomethingButtonEnabled=false;....publicICommandDoSomethingCommand{get;privateset;}........publicMyViewModel(){DoSomethingComman