问题标签 [relaycommand]

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 回答
848 浏览

silverlight-4.0 - SL4:将视图中的元素作为参数传递给视图模型中的命令

我们在其子控件之一上有一个带有上下文菜单的用户控件。
Command 绑定到 ViewModel 中的 RelayCommand。
但是,该命令必须作用于视图中的另一个子控件。
做这个的最好方式是什么?我尝试将所需的子控件作为参数传递,但我认为语法不正确:

命令:

当我使用上下文菜单时,Recenter() 被调用,但 obj 参数为空。
CommandParameter 绑定中 ElementName 属性的正确语法是什么?

更新:我尝试将 CommandParameter 更改为:

...但仍然无法正常工作。

感谢您的任何见解....

0 投票
2 回答
1259 浏览

wpf - 带参数的 RelayCommand

我在我的应用程序中使用 MVVM Light 工具包并尝试了解如何传递命令。我有以下 XAML 代码片段:

元素 swPicture 包含来自图片集合的项目源。作为测试,我暂时只有一张单张照片。

如何将我的 swPicture 元素中的图片中的第一张图片作为参数传递给命令?

目前,我可以在模型中使用以下命令处理程序触发不带参数的单个命令,定义如下:

这个想法是我需要将集合中的第一张图片作为参数传递给我的命令,以便将其传递给 GetMetaData,后者将接受此参数

如何更新我的 XAML 代码和命令以使其正常工作?

0 投票
2 回答
2231 浏览

wpf - 如何在 ItemContainerStyle 中使用 EventToCommand?

这就是它现在的工作方式。如果我想将每个 ListBoxItem 的 DoubleClick 事件绑定到一个 RelayCommand 应该怎么做?

0 投票
2 回答
1373 浏览

c# - 通过 MVVM Light RelayCommand 绑定泛型类型

我正在使用应用于 ItemsControl 项目的隐式数据模板:

这是数据绑定到我的 ViewModel 的,如下所示:

如何从 CategoryAttributeVM2 中获取与“ca”类型匹配的对象?我想我错过了一些基本的东西,但看不到它。

泛型方法会很好,但AFAIK RelayCommand 不能以这种方式通用:

有任何想法吗?

0 投票
2 回答
1353 浏览

wpf - WPF。RelayCommand - CanExecute false,而 Execute 正在处理

我想禁用一个按钮,同时它的命令正在处理。

如何修改 _isSearchInProgress?我无法在“执行”委托中执行此操作,因为它从无法访问该字段的位置(RelayCommand 对象)执行(如果我的理解是正确的):

提前感谢您的帮助。

0 投票
1 回答
5270 浏览

c# - MVVM Light 中的 EventToCommand 问题

我有以下可视化树,我正在尝试通过 EventToCommand 发送命令。视觉效果如下:

单击命令附加到的边框时,出现以下弹出错误:

“在 GalaSoft.MvvmLight.WPF4.dll 中发生了“System.InvalidCastException”类型的未处理异常

附加信息:无法将“System.Windows.Input.MouseButtonEventArgs”类型的对象转换为“System.Windows.DependencyObject”类型。"

然后在 viemModel 中创建我的命令,如下所示:

我做错什么了 ?

0 投票
3 回答
454 浏览

c# - 声明 RelayCommands 的最佳/最简洁的方式

我一直在尝试找到一种简洁明了的方式来在我的 ViewModel 中声明 RelayCommands。

我能想到的最好的是:

}

我真正想做的是删除两阶段声明/构造,例如:

但是,这无法编译

错误 CS0236:字段初始化程序无法引用非静态字段、方法或属性“MyViewModel.OnStop(object)”

人们使用更整洁/“标准”的方式吗?

0 投票
2 回答
14574 浏览

c# - 传递命令参数

我正在尝试使用我的命令传递命令参数。我有一般工作的命令,但传递参数对我来说似乎并不顺利。

我正在尝试从我的 XAML 中的分层数据传递 UserName 属性。我在这里做错了什么。

我收到并尝试使用命令语句进行编译时出错:

无法从“lambda 表达式”转换为“System.Action”

中继命令类

谢谢您的帮助!

0 投票
1 回答
349 浏览

c# - 防止 MVVM/MDI 应用程序中几乎重复的 RelayCommands

我正在使用 MDI 解决方案(请参阅http://wpfmdi.codeplex.com/)和 MVVM。

我使用一个 RelayCommand 将工具栏和/或菜单绑定到主 ViewModel,例如:

但是,在子窗口中,要将按钮绑定到相同的功能,我需要另一个几乎相等的 RelayCommand,除了它直接调用方法 EditSelectedItem 和 CanExecuteEditSelectedItem 。它看起来像:

我需要大约 10 个,将来可能需要 50 个或更多这样的命令,所以我现在喜欢用正确的方式来做。有没有办法防止这种情况或更好的方法来做到这一点?

0 投票
1 回答
715 浏览

c# - 绑定 RelayCommand 和附加条件

我正在尝试将主窗口中的 RelayCommand 的 CanExecute 绑定到可能不存在的子窗口。我该怎么做?

目前我有:

然而,这似乎不起作用,因为转换器应该在 CurrentChildViewModel 上工作(而不是 CanExecuteCompactCommand,但我也应该以某种方式包含那个 CanExecuteCompactCommand。

我希望仅当 CurrentChildViewModel != null 并且 CurrentChildViewModel.CanExecuteCompactCommand() 返回 true 时才启用菜单项。

(原因:CurrentChildViewModel是一个窗口的ViewModel,可以打开也可以不打开,如果没有打开,我希望菜单项被禁用。如果它打开,我希望Compact命令的CanExecute方法检查compact命令是否可以执行,这就像在 ChildView (Model) 中的列表视图中至少选择了两个项目。)

有人可以帮忙吗?