问题标签 [canexecute]
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 - 我可以抑制 MVVM 模式中的“CanExecute”调用吗
我正在使用 WPF 和 MVVM 模式处理树结构。我首先创建 20 个根节点并在单击每个节点时延迟加载子节点。例如......如果我有以下内容:
级别 1、2 和 3 在运行时加载。级别 1.1、3.1 和 3.2 在单击它们各自的父级之前不会加载。低于 1.1 等的级别以相同的方式加载,通过单击其父级。
我的问题是,当我单击 Level 1.1 加载其子级时,会检查 Level 1.1 的“CanExecute”方法以及 Level 1.1 的每个子级的所有根级项目。如果有很多孩子,这会导致相当多的时间浪费。
我的问题是,我可以以某种方式抑制对“CanExecute”的调用吗?我不需要将其称为这些子级别,我想绕过它。我对 MVVM 框架非常陌生,所以我不确定这是否可能。
wpf - AvalonDock 中的命令绑定问题
我创建了一个应用程序,其中有一系列命令绑定附加到我的应用程序的 MainWindow:
(为简洁起见简化代码)
在项目的 ViewModel 中有两个函数:
跳过一堆细节,有 3 种情况可以调用此命令:
- 作为应用程序主窗口中的 DockableContent
- 作为一个新的 Window 控件,包含 DockableContent
- 作为 FloatingWindow,通过 AvalonDock “撕下”窗口创建
场景 #1 和 #2 使用以下命令绑定完美地工作:
但是,当我“撕下” AvalonDock 窗口时,按钮变灰。但是,堆栈跟踪显示 CanExecute() 被调用并为该按钮返回 true ......但 Button 仍处于禁用状态。
silverlight - 具有链接的复杂类和 CanExecute 中继命令的 MVVM 属性不起作用
我在 C# 库类中有一个实体类并链接到 Silverlight 类库(实体必须在 C# 类中,因为与其他系统的遗留兼容性)
示例(C# 库):
此类链接到 Silverlight 类库。
在 MVVM 上有一个属性
该属性绑定到 XAML 中的控件
我想用 RelayCommands CanExecute 控制按钮取决于 TestClass 中的 TestValue ...
但是,如果 TestValue 更改(与空字符串不同),PressCommand CanExecute 似乎没有注意到更改并且未启用,使其无法使用...
是否可以将 CanExecute 与这种 set-tu 一起使用
wpf - Command 中连续 CanExecute 调用的性能损失
我正在将 MVVM 模式应用于项目。我有一个 UserControl,它有一个按钮,该按钮绑定到 ViewModel 公开的命令。由于按钮是可见的,它不断地调用按钮的 CanExecute 方法。有些东西告诉我,这会带来性能损失,但我不确定。这是预期的行为吗?还是有更好的方法将按钮绑定到命令?
谢谢你。
wpf - 我可以在 canExecute 谓词中再添加一个条件吗?
我在我的 WPF MVVM 应用程序中使用 Josh Smith 的 RelayCommand。
我有一个视图模型。在里面我有一个对另一个 ViewModel 的引用。
子 ViewModel 中有一个 ICommand 类型的属性。
在我的父 ViewModel 中,我可以向“CanExecute”谓词添加一个条件吗?
wpf - CanExecuteChanged 有什么用?
我可以使用 CanExecuteChanged 更改“可以执行”条件吗?
或者……它的用途是“什么”?
wpf - 使用 ICommand 的按钮不会被禁用?
我的 wpf-mvvm 应用程序中有一个按钮控件。
我使用一个ICommand
属性(在 viewmodel 中定义)将按钮单击事件绑定到 viewmodel。
我的实现有 -> 执行和canexecute
参数ICommand
(RelayCommand
)。
即使CanExecute
是假的......按钮没有被禁用......当按钮内容是图像
但是,当按钮内容为 text..enable/disable 时工作正常。
mvvm - CanExecute 和 CanExecuteChanged,我必须用 RelayCommand 来实现这些吗?
我正在使用 MVVM-Light 并且我的中继命令运行良好,我刚刚读到我应该实施CanExecuteChanged
和CanExecute
. 虽然我找不到一个很好的例子。
有没有人有一个很好的例子来说明如何实现这些。
CanExecute 在无法执行时需要返回 False 但不会只是禁用按钮?
我什么时候执行CanExecuteChanged
?
任何人都有任何关于何时使用每一个的好例子,我的代码没有,但这篇博客文章指出我应该实现这些项目。
我有点困惑,正如我所说,我认为我只是将Enabled
属性或某些东西绑定到 ViewModel 中的属性,以便我可以禁用按钮或类似控件?
任何有助于理解的帮助将不胜感激。
编辑
这就是我现在所拥有的......它可以工作,但按钮并没有物理禁用,只有命令没有运行,因为我返回 false。我在构造函数中调用 CanExecuteMe 以强制 RaiseCanExecuteChanged 运行...
这在我的视图模型的构造器中运行
这是我的其余代码,我从一个例子中得到它。
这是我的 XAML
.net - Command CanExecute 处理程序与我的线程任务冲突
我已经开始在我的 WPF 应用程序中引入一些并行编程来加速更密集、重复的任务。进展顺利,因为我看到执行时间和感知的 UI 响应存在明显差异。
我显然已经小心地确保没有从我的 UI 线程和这些任务线程对相关数据的并发访问。
但是 - 有时(不是一直),我的程序崩溃了,结果是命令的 CanExecute 处理程序正在尝试访问正在并行任务中处理的相同数据。或者,相反,我的并行任务失败,因为数据已被 CanExecute 处理程序使用。
有没有推荐的方法来解决这个问题?我可以关闭 CanExecute 检查吗?我必须为每个 CanExecute 方法添加测试吗?
(附带说明,在查看这个问题时,我对 CanExecute 处理程序被调用的频率感到非常惊讶!我的一部分认为,出于性能原因,值得手动启用和禁用命令,但肯定是这样WPF 试图让我们更轻松的一些琐碎任务!)
c# - WPF MVVM CanExecute 方法实现问题
我正在尝试实现 WPF MVVM 应用程序。我是这个平台的初学者。我只需要为我的 SaveCommand 实现一个 CanExecute 方法
这是代码
WPF XML 代码
C# ViewModel 代码
没有 canSaveExcute 它可以正常工作。设置 CanSaveExcute 后,该按钮保持禁用状态,并且不会在文本更改时启用。据我所知,这是要走的路。
请告诉我我做错了什么。
谢谢