问题标签 [delegatecommand]

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 投票
1 回答
1593 浏览

c# - MVVM 中的事件处理

在 MVVM 中,Model 通常会有数据模型,view 是 UI (XAML),它进一步绑定到属性 VM,ViewModel 通常继承 INotifyPropertyChanged。

在事件处理方面,是否有任何特定的模式来处理 UI 上的所有事件?例如:假设我们有保存/新建/关闭按钮或其他按钮......并且期望的目标是当用户执行某些操作并单击任何按钮时,控制应该转到后面的代码并应该执行所需的操作。 ..我应该如何确保我以正确的方式完成了事件处理?我应该使用哪个界面/何时以及如何使用

就像我们有 ICommand 接口/中继命令/委托命令...我不清楚这个..

提前感谢您对我的询问的回复...

0 投票
2 回答
1685 浏览

wpf - WPF DelegateCommand RaiseCanExecute

我正在尝试使用自定义 委托命令

但是,自动 RaiseCanExecuteChanged 无法正常工作。使用 CommandManagerHelper 是否很好(每次应用程序处于焦点时,它会为每个命令引发 canexecute 更改?或者我必须使用标准 RelayCommand 并自己提高 canexecutechanged ?

谢谢

0 投票
1 回答
1114 浏览

wpf - 双击一行 WPF 后填充第二个 DataGrid

我对 wpf 和 MVVM 还是有点陌生​​。我正在尝试在不破坏该模式的情况下编写解决方案。我有两个(嗯,三个,但对于这个问题的范围只有两个)DataGrid。我想双击一个行,然后从该行加载数据到第二个DataGrid(理想情况下,我会启动第二个线程来加载数据)。到目前为止,当我双击一行时,我可以弹出一个窗口。我将事件的代码放入 xaml 背后的代码中。对我来说,这似乎很窗户形式。不知何故,我觉得这大大打破了这种模式。

这是后面代码中事件的代码,这里是 xaml 中的网格定义:

我在想这段代码应该放在 MainWindowViewModel 中。所以我试图创建一个命令:

和相同的事件处理程序:

但是ICommand当它返回时抛出异常DelegateCommand(OnDoubleClickPopRow)

嗯,可以清楚地看到参数的数量不匹配。我知道我做错了什么,但我不太确定它是什么。我将继续研究这个,但你们可以提供的任何帮助将不胜感激。

0 投票
1 回答
32982 浏览

wpf - WPF 和 MVVM:从文本框中获取值并将其发送到 ViewModel

当我按下按钮时,我试图获取两个 Texboxes 的值(我正在模拟登录窗口)。按钮中分配的命令正确触发,但我不知道如何获取文本框的值来执行“登录”。

这是我的视图模型:

这是视图:

如果有人可以提供帮助...我将不胜感激。

0 投票
4 回答
2211 浏览

c# - 在从 WPF MVVM 中的 Deleagte 命令调用的函数中传递对象类型的参数

为什么以下函数在 WPF MVVM 中采用对象类型的参数?

默认情况下,我们不会在函数中传递任何参数,因为 NULL 会传递给它。

如果我们不想传递任何东西,最好从函数中删除参数。但它不允许。为什么?

0 投票
1 回答
849 浏览

c# - 委托命令与另一个 CanSee 功能除了可以执行

我想创建上下文菜单项集合,其中每个项目都有标题、命令、可以执行命令,还想添加一个新功能以提高可见性,该功能也类似于“canExecute”,但具有其他条件。

当我在我的行上按下时,DataGrid我想创建一个新的上下文菜单,其中包含绑定到上下文菜单项源(ItemContainerStyle)的集合上下文菜单项。我想在每个菜单项上执行 2 个功能:

  1. CanExecute- 禁用/启用项目
  2. CanSee- 用于更改上下文菜单项的可见性,以防它与项目无关。

最好的方法是什么?

0 投票
1 回答
1182 浏览

c# - ICommandSource 和 DelegateCommand

我正在尝试使用一些命令制作用户控件。如果我使用此处显示的方法连接 xaml 中的命令http://msdn.microsoft.com/en-us/library/vstudio/ms771361(v=vs.90).aspx它可以工作,但如果我使用来自的 DelegateCommand Prism 库 CanExecuteChanged 不会在用户控件上触发,我不知道为什么。我很抱歉,我意识到这是很多代码。Execute 正确触发,但 CanExecute 永远不会。

提前致谢。

自定义控件 Xaml

自定义控制代码

窗户

0 投票
1 回答
113 浏览

c# - 委派的命令不想工作

这是又一个漫长的编码日,我可能正在寻找一些东西。但我不知道我错过了什么

ViewModel 中的 C# 代码

Xaml 代码:

所以 MainWindow 文本框从我在 c# 构造函数中设置的内容中显示出来,所以我知道 datacontext 工作正常。我只是无法弄清楚为什么在单击按钮时无法触发委派命令。

我知道这可能真的很愚蠢。它很简单,但我盯着这个屏幕看了 50 分钟,我真的在寻找错误。尤其是当我已经完成了 100 次并且它在我的解决方案中的其他控件中时

多谢你们。

0 投票
1 回答
438 浏览

c# - 模型更改时引发 CanExecuteChanged

在我的ViewModel我有一个ObservableCollection对象Person(实现INotifyPropertyChanged)和一个SelectedPerson属性。在我看来,这些绑定到一个 ListBox。

我的 ViewModel 中还有以下 Prism DelegateCommand:

每当SelectedPerson更改SelectedPerson年龄更改时调用 MyCommand.RaiseCanExecuteChanged 的​​最优雅方式是什么?

在 setter 中添加和删除属性更改的处理程序SelectedPerson对我来说似乎有点混乱。

0 投票
0 回答
58 浏览

wpf - 如何通知包含窗口它包含的某个 UserControl 调用了 ICommand/RelayCommand/DelegateCommand?

TL/DR:

如何通知包含它包含Window的某个UserControl调用ICommand/ RelayCommand/ DelegateCommand

我想CanExecuteChanged回应Window.

扩张:

UserControl:_

Window:_

每当FuelCar单击按钮时,一个自定义命令FuelCarCommand就是Executed。(什么应该是正确的类型FuelCarCommand?简单ICommand的实现?一个RelayCommand子类型或一个DelegateCommand?或者可能只是简单Routed Events的,就是这样......?)。

该命令执行一些业务逻辑操作,并且在工作时(为汽车加油需要时间),其中的其他控件CarUserControl被禁用。

但我还需要Window禁用一些不直接相关的控件CarUserControl(例如FuelStationNumberOne应该禁用,因为它被 占用CarUserControl)。

实现这一目标的正确方法是什么?命令在这里是正确的意思吗?