问题标签 [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.
wpf - WPF 自定义 ICommand 实现和 CanExecuteChanged 事件
在我的 WPF UI 中,我通过以下代码使用我在我的 xaml 中引用的 RoutedCommands:
我不喜欢这个指向我的 ViewModel 类的静态链接,我认为这不如创建自定义 ICommand 实现并使用如下语法
创建了一个后,我注意到我所做的一个主要缺点:RoutedCommands 使用 CommandManager 并且(以某种对我来说完全不透明的方式)触发 CommandManager.RequerySuggested 事件,以便自动重新查询它们的 CanExecute 方法。至于我的自定义实现, CanExecute 仅在启动时触发一次,之后再也不会触发。
有人对此有优雅的解决方案吗?
c# - C#/WPF:KeyBinding 不触发命令
我已经声明<InputBindings>
出于测试目的,我也添加了绑定到这些命令的按钮
我注意到当粘贴按钮启用时,当我按下 Ctrl-V 时没有任何反应。Ctrl-C 似乎有效。为此,选择了一个列表框项,我不确定它是否有任何区别。有谁知道为什么我PasteImageCommand
没有触发?
我正在使用 .NET 4 顺便说一句
更新
更完整的代码片段
更新
我发现我需要将 放在KeyBindings
主窗口中,但命令在 中ViewModel
,我如何在ShellView
其中设置键绑定然后绑定到中的命令ShellViewModel
?
wpf - 类项目中的 ViewModel
我正在构建一个基于 MVVM 模式的 WPF 应用程序。
稍后我们将构建一个相同类型的 Silverlight 应用程序,以及一个 Web 应用程序。
我想在所有三个 UI:s 中使用我的 ViewModels,所以我的想法是将 vm:s 移动到类库,但后来我丢失了 ICommands,有没有简单的方法来解决这个问题?
将如何解决这个问题?
最好的问候,彼得拉尔森!
c# - 使用“普通”ICommand
我使用RelayCommand
了 MVVM Foundation,现在,当我尝试使用“正常”ICommand
时,我真的不知道如何使用它,特别是“绑定”到我的主类使用的变量。我只是想在主类视图模型中创建一个OkCommand
引发事件( )。RequestClose
另外,我只想在所有绑定都有效的情况下启用它。验证是使用实现的ValidationRule
,如下所示
wpf - WPF 上下文菜单字典> 数据绑定
假设以下类定义。
因此,此 ProvidersDictionary 属性绑定到 Window 上下文菜单,如下所示:
问题是:如何使 DataProvider 菜单项的 ICommand 数据绑定单击并在命令的 Execute 方法中检索数据类型(枚举类型)和数据提供者(IDataProvider 接口)。
更新 我想让一些命令类绑定到 MenuItems,例如:
MainViewModel 会将此命令类的实例作为属性公开。
wpf - 有没有办法使禁用的按钮上的图像去饱和?
有没有办法可以使禁用的按钮中的图像去饱和?例如。ICommand.CanExecute = false
? 还是我需要使用单独的图像+样式/触发器
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 应该足够了。
.net - 是否可以将 Datagrid 上的 CommitEditCommand 绑定到视图模型中的 ICommand?
我正在尝试做类似的事情;
其中 DeleteCommand 是视图模型公开的 ICommand。
我以为我可以做类似于以下的事情,但事实并非如此;
基本上我试图在视图模型中捕获事件发生并对其采取行动。我在这里想念什么?
wpf - 使用 ICommand 的按钮不会被禁用?
我的 wpf-mvvm 应用程序中有一个按钮控件。
我使用一个ICommand
属性(在 viewmodel 中定义)将按钮单击事件绑定到 viewmodel。
我的实现有 -> 执行和canexecute
参数ICommand
(RelayCommand
)。
即使CanExecute
是假的......按钮没有被禁用......当按钮内容是图像
但是,当按钮内容为 text..enable/disable 时工作正常。
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?