问题标签 [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.

0 投票
1 回答
431 浏览

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 框架非常陌生,所以我不确定这是否可能。

0 投票
1 回答
1154 浏览

wpf - AvalonDock 中的命令绑定问题

我创建了一个应用程序,其中有一系列命令绑定附加到我的应用程序的 MainWindow:

(为简洁起见简化代码)

在项目的 ViewModel 中有两个函数:

跳过一堆细节,有 3 种情况可以调用此命令:

  1. 作为应用程序主窗口中的 DockableContent
  2. 作为一个新的 Window 控件,包含 DockableContent
  3. 作为 FloatingWindow,通过 AvalonDock “撕下”窗口创建

场景 #1 和 #2 使用以下命令绑定完美地工作:

但是,当我“撕下” AvalonDock 窗口时,按钮变灰。但是,堆栈跟踪显示 CanExecute() 被调用并为该按钮返回 true ......但 Button 仍处于禁用状态。

0 投票
1 回答
827 浏览

silverlight - 具有链接的复杂类和 CanExecute 中继命令的 MVVM 属性不起作用

我在 C# 库类中有一个实体类并链接到 Silverlight 类库(实体必须在 C# 类中,因为与其他系统的遗留兼容性)

示例(C# 库):

此类链接到 Silverlight 类库。

在 MVVM 上有一个属性

该属性绑定到 XAML 中的控件

我想用 RelayCommands CanExecute 控制按钮取决于 TestClass 中的 TestValue ...

但是,如果 TestValue 更改(与空字符串不同),PressCommand CanExecute 似乎没有注意到更改并且未启用,使其无法使用...

是否可以将 CanExecute 与这种 set-tu 一起使用

0 投票
1 回答
1614 浏览

wpf - Command 中连续 CanExecute 调用的性能损失

我正在将 MVVM 模式应用于项目。我有一个 UserControl,它有一个按钮,该按钮绑定到 ViewModel 公开的命令。由于按钮是可见的,它不断地调用按钮的 CanExecute 方法。有些东西告诉我,这会带来性能损失,但我不确定。这是预期的行为吗?还是有更好的方法将按钮绑定到命令?

谢谢你。

0 投票
1 回答
458 浏览

wpf - 我可以在 canExecute 谓词中再添加一个条件吗?

我在我的 WPF MVVM 应用程序中使用 Josh Smith 的 RelayCommand。

我有一个视图模型。在里面我有一个对另一个 ViewModel 的引用。

子 ViewModel 中有一个 ICommand 类型的属性。

在我的父 ViewModel 中,我可以向“CanExecute”谓词添加一个条件吗?

0 投票
3 回答
31443 浏览

wpf - CanExecuteChanged 有什么用?

我可以使用 CanExecuteChanged 更改“可以执行”条件吗?

或者……它的用途是“什么”?

0 投票
3 回答
6308 浏览

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

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

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

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

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

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

0 投票
2 回答
12887 浏览

mvvm - CanExecute 和 CanExecuteChanged,我必须用 RelayCommand 来实现这些吗?

我正在使用 MVVM-Light 并且我的中继命令运行良好,我刚刚读到我应该实施CanExecuteChangedCanExecute. 虽然我找不到一个很好的例子。

有没有人有一个很好的例子来说明如何实现这些。

CanExecute 在无法执行时需要返回 False 但不会只是禁用按钮?

我什么时候执行CanExecuteChanged

任何人都有任何关于何时使用每一个的好例子,我的代码没有,但这篇博客文章指出我应该实现这些项目。

我有点困惑,正如我所说,我认为我只是将Enabled属性或某些东西绑定到 ViewModel 中的属性,以便我可以禁用按钮或类似控件?

任何有助于理解的帮助将不胜感激。

编辑

这就是我现在所拥有的......它可以工作,但按钮并没有物理禁用,只有命令没有运行,因为我返回 false。我在构造函数中调用 CanExecuteMe 以强制 RaiseCanExecuteChanged 运行...

这在我的视图模型的构造器中运行

这是我的其余代码,我从一个例子中得到它。

这是我的 XAML

0 投票
1 回答
241 浏览

.net - Command CanExecute 处理程序与我的线程任务冲突

我已经开始在我的 WPF 应用程序中引入一些并行编程来加速更密集、重复的任务。进展顺利,因为我看到执行时间和感知的 UI 响应存在明显差异。

我显然已经小心地确保没有从我的 UI 线程和这些任务线程对相关数据的并发访问。

但是 - 有时(不是一直),我的程序崩溃了,结果是命令的 CanExecute 处理程序正在尝试访问正在并行任务中处理的相同数据。或者,相反,我的并行任务失败,因为数据已被 CanExecute 处理程序使用。

有没有推荐的方法来解决这个问题?我可以关闭 CanExecute 检查吗?我必须为每个 CanExecute 方法添加测试吗?

(附带说明,在查看这个问题时,我对 CanExecute 处理程序被调用的频率感到非常惊讶!我的一部分认为,出于性能原因,值得手动启用和禁用命令,但肯定是这样WPF 试图让我们更轻松的一些琐碎任务!)

0 投票
1 回答
3206 浏览

c# - WPF MVVM CanExecute 方法实现问题

我正在尝试实现 WPF MVVM 应用程序。我是这个平台的初学者。我只需要为我的 SaveCommand 实现一个 CanExecute 方法

这是代码

WPF XML 代码

C# ViewModel 代码

没有 canSaveExcute 它可以正常工作。设置 CanSaveExcute 后,该按钮保持禁用状态,并且不会在文本更改时启用。据我所知,这是要走的路。

请告诉我我做错了什么。

谢谢