问题标签 [routedcommand]
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.
mvvm - MVVM 路由和中继命令
RoutedCommand和RelayCommand 有什么区别?在 MVVM 模式中何时使用 RoutedCommand 以及何时使用 RelayCommand?
c# - 在 XAML 中设置命令目标
我很难理解 RoutedCommand 的 CommandTarget 属性。
基本上,我有一些在用户控件(而不是窗口)中实现的静态命令。我在用户控件中创建了一个命令绑定。如果我在用户控件中声明按钮,那么我可以使用我的路由事件。但是,当按钮位于用户控件之外时,我无法使用路由事件。我认为命令目标将解决我的问题。
那么如何为工具栏用户控件的按钮设置commandtarget,以便调用Container的Executed和CanExecuted呢?
使用 micahtan 更改更改的编辑代码,但我仍然无法将其转换为 CanExecute 或 Execute。
窗口 XAML:
工具栏 XAML:
工具栏 CS:
容器 XAML:
集装箱 CS:
路由命令:
wpf - RoutedCommand 构造函数彼此有何不同?
WPF 中的 RoutedCommand 有 3 个重载的构造函数。
考虑以下:
对比
第二个有什么优势?
它是否更容易在 XAML 中定义?MSDN 并没有真正提供有关第二个构造函数的详细信息。
wpf - 无法在 VB 中实现 ICommandSource
有没有人尝试过用 VB 实现 ICommandSource?微软提供的例子是用C#编写的,由于VB不允许隐式实现,所以这个接口在VB中是无法实现的!!
c# - 带有快捷方式和自定义 RoutedCommand 的 WPF 菜单
我是 WPF 的新手,所以我可能会遗漏一些东西。我的 MainWindow 类中有一个名为 StartService 的简单函数。我想在我的应用程序中添加一个带有快捷键 Ctrl+S 的菜单项“启动服务”。我必须执行以下操作:
在我的 MainWindow 类中,我必须定义:
public static RoutedCommand StartServiceRoutedCmd = new RoutedCommand();
在我的 XAML 代码中,我添加了:
事情正在奏效。我想知道这是否是正确且有组织的方式?我需要一个 StopService 功能的快捷方式。这是否意味着我需要为我需要的每个快捷方式定义一个新的 RoutedCommand StopServiceRoutedCmd 等等?
wpf - 将 CommandBindings 添加到 ContextMenus
我有一个包含许多不同类型节点的树视图。
树中的每个节点都有一个上下文菜单,该菜单是通过将其绑定到底层 ViewModel 中的 ICommand 对象数组而动态创建的。这工作正常,上下文菜单按预期工作。
但是,我的命令没有命令绑定,所以当我选择树视图项时,主菜单(即剪切/复制/粘贴)不会改变。
我的问题是如何将我的命令绑定添加到每个树视图项?
我想我可以绑定到它们,但我还没有设法让它工作。我唯一的另一个想法是在选择/取消选择树视图项时创建/删除绑定。
我还担心,如果我确实设法将命令绑定直接绑定到树视图项,那么如果树很大,这可能会占用大量资源?在需要时创建和销毁绑定更好吗?
wpf - WPF 路由命令有时只会触发
我有一些 RoutedCommands 用于控制 A、复制粘贴等命令,它们都可以正常工作。然后我添加了 4 个路由命令来使用箭头键在画布中左右上下移动对象,它们有时有效,有时无效。起初我认为这是画布上的焦点问题,但我发现同时,所有其他路由命令(如 control-A)都有效,但箭头键无效。我真的不知道这里发生了什么,它们是具有不同变量名的相同路由命令,为什么一个工作 100% 的时间,一个只工作 50% 的时间?
工作路由命令:
RoutedCommand 故障:
发生故障的 RoutedCommand 有时只是不触发,尤其是在我打开其他窗口并返回画布后,它会停止触发,而其他路由命令不受影响。任何想法是什么导致了这种奇怪的行为?
c# - WPF - 将 GlobalResource 耦合到 ViewModel
我有一个 WPF 应用程序,它在 ResourceDictionary 中定义了一个NotifyIcon ,该应用程序在 App 启动时添加到 Application.Current.Resources。
我正在使用 MVVM-Light 框架,我想将 NotifyIcon 上的 ContextMenu.MenuItems 的 Command 属性绑定到 ViewModel 中定义的公共 RelayCommand。
我对将 View 耦合到 ViewModel 感到满意,但是如何将 Global Resource 耦合到 ViewModel?
这是我试图让它发挥作用的尝试,只是不确定我是否在正确的路线上......
当我运行此代码时,我收到一条错误消息,指出“找不到名为 'Locator' 的资源。资源名称区分大小写。” 这源于 NotificationIconResources.xaml 中 TaskBarIcon 标记上的 DataContext 绑定
SingleInstanceManager 确保只能创建一个实例
ControllerApp 替换 App.xaml 和 App.xaml.cs
NotificationIconResources.xaml 是定义 NotifyIcon 的资源字典
NotifyIconViewModel 包含我要绑定的 RelayCommands
binding - 在 WPF 中,如何在不导致内存泄漏的情况下侦听 RoutedUICommand 的 text 属性的更改?
在 WPF 中, is 不是依赖对象,如果您要将其属性绑定到 UI 中的某些内容(例如 MenuItem 的标头),RoutedUICommand
它也不会实现意义,并且 is not ,您可能会在动态加载的上下文中出现内存泄漏在加载和卸载这些 UI 时非常频繁地创建和销毁项目的菜单或 UI。INotifyPropertyChanged
Text
Mode
OneTime
相反,如果您使用OneTime
,您将避免泄漏,但您将丢失我们需要的更改通知,因为我们的菜单文本需要根据应用程序中的状态动态更新。(想想一个典型的"Save 'xxx' As..."
命令如何改变以反映当前项目的名称。)
也就是说,我们如何正确绑定到文本并在不导致内存泄漏的情况下获取更改?
我们提出的解决方案是创建一个子类RoutedCommand
(注意:没有“UI”),我们在其中创建自己的Text
属性并实施INotifyPropertyChanged
以支持它。但是,我们不确定 WPF 的内置支持是否会出现问题,例如自动将 aMenuItem
的标头绑定到Text
属性,因为它不是RoutedUICommand
. (注意,我们可以只使用一个真实的RoutedUICommand
对象,然后“新建”该Text
属性,但是您可能会遇到访问该属性的方式的问题,因此我们宁愿尽可能避免这种情况。)
wpf - 隧道 CommandBinding.previewcanexecute 事件有什么用?
隧道 CommandBinding.previewcanexecute 事件有什么用?
并冒泡 CommandBinding.canexecute 事件??有什么用