问题标签 [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.
c# - MVVM 中的事件处理
在 MVVM 中,Model 通常会有数据模型,view 是 UI (XAML),它进一步绑定到属性 VM,ViewModel 通常继承 INotifyPropertyChanged。
在事件处理方面,是否有任何特定的模式来处理 UI 上的所有事件?例如:假设我们有保存/新建/关闭按钮或其他按钮......并且期望的目标是当用户执行某些操作并单击任何按钮时,控制应该转到后面的代码并应该执行所需的操作。 ..我应该如何确保我以正确的方式完成了事件处理?我应该使用哪个界面/何时以及如何使用?
就像我们有 ICommand 接口/中继命令/委托命令...我不清楚这个..
提前感谢您对我的询问的回复...
wpf - WPF DelegateCommand RaiseCanExecute
我正在尝试使用自定义 委托命令
但是,自动 RaiseCanExecuteChanged 无法正常工作。使用 CommandManagerHelper 是否很好(每次应用程序处于焦点时,它会为每个命令引发 canexecute 更改?或者我必须使用标准 RelayCommand 并自己提高 canexecutechanged ?
谢谢
wpf - 双击一行 WPF 后填充第二个 DataGrid
我对 wpf 和 MVVM 还是有点陌生。我正在尝试在不破坏该模式的情况下编写解决方案。我有两个(嗯,三个,但对于这个问题的范围只有两个)DataGrid
。我想双击一个行,然后从该行加载数据到第二个DataGrid
(理想情况下,我会启动第二个线程来加载数据)。到目前为止,当我双击一行时,我可以弹出一个窗口。我将事件的代码放入 xaml 背后的代码中。对我来说,这似乎很窗户形式。不知何故,我觉得这大大打破了这种模式。
这是后面代码中事件的代码,这里是 xaml 中的网格定义:
我在想这段代码应该放在 MainWindowViewModel 中。所以我试图创建一个命令:
和相同的事件处理程序:
但是ICommand
当它返回时抛出异常DelegateCommand(OnDoubleClickPopRow)
。
嗯,可以清楚地看到参数的数量不匹配。我知道我做错了什么,但我不太确定它是什么。我将继续研究这个,但你们可以提供的任何帮助将不胜感激。
wpf - WPF 和 MVVM:从文本框中获取值并将其发送到 ViewModel
当我按下按钮时,我试图获取两个 Texboxes 的值(我正在模拟登录窗口)。按钮中分配的命令正确触发,但我不知道如何获取文本框的值来执行“登录”。
这是我的视图模型:
这是视图:
如果有人可以提供帮助...我将不胜感激。
c# - 在从 WPF MVVM 中的 Deleagte 命令调用的函数中传递对象类型的参数
为什么以下函数在 WPF MVVM 中采用对象类型的参数?
默认情况下,我们不会在函数中传递任何参数,因为 NULL 会传递给它。
如果我们不想传递任何东西,最好从函数中删除参数。但它不允许。为什么?
c# - 委托命令与另一个 CanSee 功能除了可以执行
我想创建上下文菜单项集合,其中每个项目都有标题、命令、可以执行命令,还想添加一个新功能以提高可见性,该功能也类似于“canExecute”,但具有其他条件。
当我在我的行上按下时,DataGrid
我想创建一个新的上下文菜单,其中包含绑定到上下文菜单项源(ItemContainerStyle
)的集合上下文菜单项。我想在每个菜单项上执行 2 个功能:
CanExecute
- 禁用/启用项目CanSee
- 用于更改上下文菜单项的可见性,以防它与项目无关。
最好的方法是什么?
c# - ICommandSource 和 DelegateCommand
我正在尝试使用一些命令制作用户控件。如果我使用此处显示的方法连接 xaml 中的命令http://msdn.microsoft.com/en-us/library/vstudio/ms771361(v=vs.90).aspx它可以工作,但如果我使用来自的 DelegateCommand Prism 库 CanExecuteChanged 不会在用户控件上触发,我不知道为什么。我很抱歉,我意识到这是很多代码。Execute 正确触发,但 CanExecute 永远不会。
提前致谢。
自定义控件 Xaml
自定义控制代码
窗户
c# - 委派的命令不想工作
这是又一个漫长的编码日,我可能正在寻找一些东西。但我不知道我错过了什么
ViewModel 中的 C# 代码
Xaml 代码:
所以 MainWindow 文本框从我在 c# 构造函数中设置的内容中显示出来,所以我知道 datacontext 工作正常。我只是无法弄清楚为什么在单击按钮时无法触发委派命令。
我知道这可能真的很愚蠢。它很简单,但我盯着这个屏幕看了 50 分钟,我真的在寻找错误。尤其是当我已经完成了 100 次并且它在我的解决方案中的其他控件中时
多谢你们。
c# - 模型更改时引发 CanExecuteChanged
在我的ViewModel
我有一个ObservableCollection
对象Person
(实现INotifyPropertyChanged
)和一个SelectedPerson
属性。在我看来,这些绑定到一个 ListBox。
我的 ViewModel 中还有以下 Prism DelegateCommand:
每当SelectedPerson
更改和SelectedPerson
年龄更改时调用 MyCommand.RaiseCanExecuteChanged 的最优雅方式是什么?
在 setter 中添加和删除属性更改的处理程序SelectedPerson
对我来说似乎有点混乱。
wpf - 如何通知包含窗口它包含的某个 UserControl 调用了 ICommand/RelayCommand/DelegateCommand?
TL/DR:
如何通知包含它包含Window
的某个UserControl
调用ICommand
/ RelayCommand
/ DelegateCommand
?
我想CanExecuteChanged
回应Window
.
扩张:
UserControl
:_
Window
:_
每当FuelCar
单击按钮时,一个自定义命令FuelCarCommand
就是Execute
d。(什么应该是正确的类型FuelCarCommand
?简单ICommand
的实现?一个RelayCommand
子类型或一个DelegateCommand
?或者可能只是简单Routed Events
的,就是这样......?)。
该命令执行一些业务逻辑操作,并且在工作时(为汽车加油需要时间),其中的其他控件CarUserControl
被禁用。
但我还需要Window
禁用一些不直接相关的控件CarUserControl
(例如FuelStationNumberOne
应该禁用,因为它被 占用CarUserControl
)。
实现这一目标的正确方法是什么?命令在这里是正确的意思吗?