问题标签 [icommand]

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 投票
2 回答
5845 浏览

wpf - WPF 自定义 ICommand 实现和 CanExecuteChanged 事件

在我的 WPF UI 中,我通过以下代码使用我在我的 xaml 中引用的 RoutedCommands:

我不喜欢这个指向我的 ViewModel 类的静态链接,我认为这不如创建自定义 ICommand 实现并使用如下语法

创建了一个后,我注意到我所做的一个主要缺点:RoutedCommands 使用 CommandManager 并且(以某种对我来说完全不透明的方式)触发 CommandManager.RequerySuggested 事件,以便自动重新查询它们的 CanExecute 方法。至于我的自定义实现, CanExecute 仅在启动时触发一次,之后再也不会触发。

有人对此有优雅的解决方案吗?

0 投票
7 回答
17341 浏览

c# - C#/WPF:KeyBinding 不触发命令

我已经声明<InputBindings>

出于测试目的,我也添加了绑定到这些命令的按钮

我注意到当粘贴按钮启用时,当我按下 Ctrl-V 时没有任何反应。Ctrl-C 似乎有效。为此,选择了一个列表框项,我不确定它是否有任何区别。有谁知道为什么我PasteImageCommand没有触发?

我正在使用 .NET 4 顺便说一句

更新

更完整的代码片段

更新

我发现我需要将 放在KeyBindings主窗口中,但命令在 中ViewModel,我如何在ShellView其中设置键绑定然后绑定到中的命令ShellViewModel

0 投票
2 回答
78 浏览

wpf - 类项目中的 ViewModel

我正在构建一个基于 MVVM 模式的 WPF 应用程序。

稍后我们将构建一个相同类型的 Silverlight 应用程序,以及一个 Web 应用程序。

我想在所有三个 UI:s 中使用我的 ViewModels,所以我的想法是将 vm:s 移动到类库,但后来我丢失了 ICommands,有没有简单的方法来解决这个问题?

将如何解决这个问题?

最好的问候,彼得拉尔森!

0 投票
1 回答
321 浏览

c# - 使用“普通”ICommand

我使用RelayCommand了 MVVM Foundation,现在,当我尝试使用“正常”ICommand时,我真的不知道如何使用它,特别是“绑定”到我的主类使用的变量。我只是想在主类视图模型中创建一个OkCommand引发事件( )。RequestClose另外,我只想在所有绑定都有效的情况下启用它。验证是使用实现的ValidationRule,如下所示

0 投票
1 回答
1561 浏览

wpf - WPF 上下文菜单字典> 数据绑定

假设以下类定义。

因此,此 ProvidersDictionary 属性绑定到 Window 上下文菜单,如下所示:

问题是:如何使 DataProvider 菜单项的 ICommand 数据绑定单击并在命令的 Execute 方法中检索数据类型(枚举类型)和数据提供者(IDataProvider 接口)。

更新 我想让一些命令类绑定到 MenuItems,例如:

MainViewModel 会将此命令类的实例作为属性公开。

0 投票
2 回答
1406 浏览

wpf - 有没有办法使禁用的按钮上的图像去饱和?

有没有办法可以使禁用的按钮中的图像去饱和?例如。ICommand.CanExecute = false? 还是我需要使用单独的图像+样式/触发器

0 投票
2 回答
5446 浏览

wpf - WPF/MVVM:当 UserControl 后面的 ViewModel 尚未初始化时禁用按钮的状态?

我有一个带有 ListBox 和 3 个按钮的 DocumentListView.Xaml。

在 UserControl 后面是一个 DocumentListViewModel,它有 3 个按钮,它们的命令属性绑定到 3 个 RelayCommands。

我有 3 个控制器,例如 AdministrationController、BillingController、ReportController。

每个控制器都有 ObservableCollections,例如 Customer 1 : N Order 1: N Document 与另一个控制器相同。

在一个控制器中,我有一种特殊的绑定情况。当我的 DocumentListViewModel 未由其父 ViewModel(如 OrderViewModel)初始化时(因为没有加载/存在订单),那么我的 UserControl 有 3 个启用的按钮。好的,用户可以按下 3 个按钮,但没有任何反应,但仍然非常混乱,最重要的是我的用户界面中的一致性已经消失。

如何将按钮的命令默认设置为“已禁用”?

将 Buttons IsEnabled 属性设置为 false 无济于事,因为按钮将永远处于禁用状态。没有 CanExecute TRUE 会将其设置为 IsEnabled = true。

并且我不想引入另一个属性 IsButtonEnabled ......那很愚蠢,因为那时我的按钮逻辑背后有两个世界的 winforms 和 wpf ...... ICommand 应该足够了。

0 投票
1 回答
909 浏览

.net - 是否可以将 Datagrid 上的 CommitEditCommand 绑定到视图模型中的 ICommand?

我正在尝试做类似的事情;

其中 DeleteCommand 是视图模型公开的 ICommand。

我以为我可以做类似于以下的事情,但事实并非如此;

基本上我试图在视图模型中捕获事件发生并对其采取行动。我在这里想念什么?

0 投票
3 回答
6308 浏览

wpf - 使用 ICommand 的按钮不会被禁用?

我的 wpf-mvvm 应用程序中有一个按钮控件。

我使用一个ICommand属性(在 viewmodel 中定义)将按钮单击事件绑定到 viewmodel。

我的实现有 -> 执行和canexecute参数ICommandRelayCommand)。

即使CanExecute是假的......按钮没有被禁用......当按钮内容是图像

但是,当按钮内容为 text..enable/disable 时工作正常。

0 投票
2 回答
2059 浏览

silverlight - Silverlight MVVM: where did my (object sender, RoutedEventArgs e) go?

I am using commanding in my viewmodel to handle events. like for example I am handling a button click event like this:

XAML

Viewmodel Code

Viewmodel Constructor code to wireup the command

Actual method in the viewmodel that gets called on button click

This works. So my questions are:

  • Is this the correct way?
  • Is there a way I can propogate the (object sender, RoutedEventArgs e) parameters into my viewmodel and should I care if its not there?
  • Suppose if this were a listbox selection changed event and not a button click. How do I get the value of the selected item without the object sender, SelectionChangedEventArgs e parameters?