问题标签 [icommand]
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# - WPF:TreeViewItem 绑定到 ICommand
我正忙着在 WPF 中创建我的第一个 MVVM 应用程序。
基本上我遇到的问题是我有一个 TreeView (System.Windows.Controls.TreeView),我已经将它放在我的 WPF 窗口上,我决定我将绑定到 CommandViewModel 项目的 ReadOnlyCollection,这些项目由一个DisplayString、Tag 和一个 RelayCommand。
现在在 XAML 中,我有我的 TreeView 并且我已经成功地将我的 ReadOnlyCollection 绑定到这个。我可以查看它,并且 UI 中的一切看起来都很好。
现在的问题是我需要将 RelayCommand 绑定到 TreeViewItem 的命令,但是从我可以看到 TreeViewItem 没有命令。这是否迫使我在 IsSelected 属性甚至 TreeView_SelectedItemChanged 方法后面的代码中执行此操作,或者有没有办法在 WPF 中神奇地执行此操作?
这是我的代码:
理想情况下,我很想去:
是否有人有允许我使用我拥有的 RelayCommand 基础设施的解决方案。
谢谢各位,非常感谢!
理查德
wpf - Josh Smith 的 RelayCommand 实施是否存在缺陷?
考虑参考Josh Smith 的文章 WPF Apps With The Model-View-ViewModel Design Pattern,特别是 a 的示例实现RelayCommand
(在图 3 中)。(这个问题不需要通读整篇文章。)
总的来说,我认为实现非常好,但我对'事件的CanExecuteChanged
订阅委托有疑问。状态的文档:CommandManager
RequerySuggested
RequerySuggested
由于此事件是静态的,它只会将处理程序作为弱引用。侦听此事件的对象应保持对其事件处理程序的强引用,以避免它被垃圾收集。这可以通过拥有一个私有字段并将处理程序分配为附加到此事件之前或之后的值来完成。
然而,示例实现RelayCommand
并没有对订阅的处理程序进行任何维护:
- 这是否将弱引用泄漏给
RelayCommand
客户端,要求用户自己RelayCommand
了解实现CanExecuteChanged
并维护实时引用? 如果是这样,是否有意义,例如,将 的实现修改为
/li>RelayCommand
如下所示,以减轻CanExecuteChanged
订阅者潜在的过早 GC:
silverlight - 为什么我不能将我的 Silverlight 按钮单击绑定到 Prism DelegateCommand
我在 Silverlight 3 和 Prism 中有一个简单的测试应用程序,我只是想将一个按钮单击绑定到我在视图模型上创建的一个简单命令。这是一个测试应用程序,只是为了让指挥工作。当我运行它时,我收到一个绑定错误,告诉我视图找不到命令:
System.Windows.Data 错误:BindingExpression 路径错误:在“Bind1.ShellViewModel”“Bind1.ShellViewModel”上找不到“MyCommand”属性(HashCode=8628710)。BindingExpression: Path='MyCommand' DataItem='Bind1.ShellViewModel' (HashCode=8628710); 目标元素是'System.Windows.Controls.Button'(名称='');目标属性是'Command'(类型'System.Windows.Input.ICommand')..
这是我的外壳视图:
在视图的构造函数中,我实例化了一个 ViewModel(我还不担心使用容器......):
这是我的视图模型:
按钮标签绑定工作正常,因此视图找到 ViewModel OK。
为什么找不到 MyCommand?这让我发疯 - 我显然在做一些非常错误的简单事情......
非常感谢。
c# - MVP 中的命令
MVP (Model - View - Presenter) 中的 ICommand 实现是否属于 Presenter 或它自己的类?
wpf - 按钮上的 WPF ICommand
我已经为我的一个按钮实现了一个自定义 IComand 类。该按钮被放置在页面“MyPage.xaml”中,但其自定义 ICommand 类被放置在另一个类中,而不是在 MyPage 代码后面。然后从 XAML 我想将按钮与它的自定义命令类绑定,然后我这样做:
MyPage.xaml:
和自定义命令按钮类:
我的问题是如何说 MyPage.xaml 按钮的 Execute 和 CanExecute 方法在另一个类中,而不是按钮所在位置的代码。怎么说这些方法在 XAML 页面的 RemoveAllCommand 类中。
我还想在按钮中产生单击鼠标事件时触发此命令,所以我进行输入绑定,是否正确?
谢谢
wpf - WPF ViewModel 命令可以执行问题
我的视图模型上的上下文菜单命令有些困难。
我正在为 View Model 中的每个命令实现 ICommand 接口,然后在 View (MainWindow) 的资源中创建一个 ContextMenu,并使用 MVVMToolkit 中的 CommandReference 来访问当前的 DataContext (ViewModel) 命令。
当我调试应用程序时,似乎除了在创建窗口时没有调用命令上的 CanExecute 方法,因此我的 Context MenuItems 没有像我预期的那样被启用或禁用。
我已经制作了一个简单的示例(附在此处),它表明了我的实际应用并在下面进行了总结。任何帮助将不胜感激!
这是视图模型
DisplayValueCommand 是这样的:
最后,视图在 Xaml 中定义:
wpf - 重用用户控件中的控件
我在 UserControl1 中有一个 UserControl UserControl1 和一个按钮。我有一个 UserControl1ViewModel,它有一个按钮的 ICommand 属性。使用此命令,我需要在 VM 外部(从其他 VM 或 MainWindow 的 VM)调用方法。对此的最佳做法是什么?
mvvm - 使用 mvvm 将命令绑定到 Silverlight 4 中的按钮
我有一个名为HomePage.xaml
. 我在页面构造函数的代码隐藏文件中创建一个模型实例(使用 MVVM 模式)
我有一个按钮HomePage.xaml
,我想在其中绑定到内部MainViewModel
调用的命令,GetData()
并希望在 datagrid 中填充数据。MainViewModel
有一个ObservableCollection
我会用它来绑定数据网格中的数据。
在没有绑定命令的情况下填充数据网格中的数据可以正常工作。
我将按钮绑定为:
我应该如何使用 MVVM 绑定命令?
c# - 如何从 ArcObjects 中的命令按钮获取下拉选择?
我在 ArcMap 的同一工具栏中有一个下拉菜单和一个 Icommand 按钮。当我使用命令按钮时,我似乎无法访问下拉列表选项。
如何找到下拉列表,以便找出用户刚刚选择的内容?
谢谢
斯科特
wpf - Wpf 用户控件的按钮未在 Presenter 中触发 ICommand
我是 WPF 新手,想学习 WPF 复合应用程序。
我有用户控制,这是一个模块,上面有 1 个标签和 1 个按钮。
现在我正在尝试在按钮上使用 Command 属性,看起来像
在演示者中,我得到了
问题是当我单击按钮时 GetCustomerName() 方法没有被执行