问题标签 [commandbinding]
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 - WPF CommandParameter 绑定问题
我在理解命令参数绑定的工作原理时遇到了一些麻烦。
当我在调用 InitializeComponent 之前创建小部件类的实例时,它似乎工作正常。对 ExecuteCommand 函数中的参数(Widget)的修改将被“应用”到 _widget。这是我所期望的行为。
如果 _widget 的实例是在 InitializeComponent 之后创建的,我会在 ExecuteCommand 函数中得到 e.Parameter 的空引用异常。
为什么是这样?如何使用 MVP 模式进行这项工作,在创建视图后可能会创建绑定对象?
c# - CanExecute-Result 更改后控件不刷新
在我的窗口中,我有加载和保存方法的按钮。我使用 CommandBinding 并且保存按钮具有 CanExecute 属性,以防止用户在加载数据之前保存数据。
CanExecute-Methode 连接到一个名为“canSaveXML”的简单布尔值
我的意图是在加载数据后设置 canSaveXML = true 但在值发生更改后控件不会刷新。我做了一些阅读,发现我必须调用 CommandManager.InvalidateRequerySuggested。我现在这样做,我的代码看起来像这样。
但是控件(按钮)仍然没有刷新。在我触发 UI 上的任何内容或最小化/最大化窗口之前,我仍然处于禁用状态。在我这样做之后,按钮被启用。
这里有什么问题?
在 MSDN 示例中,CommandManager.InvalidateRequerySuggested 一次又一次地使用调度程序计时器调用,但我拒绝相信这将是唯一的解决方案。
wpf - 无法将菜单项中的命令绑定到命令绑定
我有以下xaml:
关闭菜单项指定它应该使用关闭命令。Close 命令绑定指定应为 CanExecute 调用 CommandBinding_CanExecute,但永远不会调用 CommandBinding_CanExecute。关闭菜单项始终处于禁用状态。
我假设绑定没有发生。谁能解释为什么?
如果它与不在可视树中的上下文菜单有关,您如何解决它?
c# - 使用父级的 DataContext(WPF - 动态菜单命令绑定)
我查看了这个网络和谷歌,解决方案对我不起作用。
我在 UserControl 的 ViewModel 上有一个命令。好吧,用户控件有一个绑定到 ObservableCollection 的 ItemsControl。在 ItemsControl.ItemTemplate 的 DataTemplate 中,我有一个按钮,我想使用该命令。我无法绑定命令,因为在 DataTemplate 内部,datacontext 不是 ViewModel,而是 ObservableCollection 的一个项目。
问题是:如果丢失了父数据上下文,如何将按钮绑定到命令?
我认为这需要一个简单的解决方案,因为我认为这是一个常见问题。
想象一下这个场景:
您有一个带有 observableCollection 作为 ItemsSource 的 ListBox 项,因此您在 ListBox 内为集合中的每个元素使用一个数据模板。好吧,您想删除选定的项目,并在该作业的每一行中放置一个按钮。你是怎样做的?
在 MVP 中,我可以在按钮的单击事件中执行此操作:
简而言之。您将行(所选项目)的数据上下文发送给演示者。
但是,我怎样才能以 mvvm 方式做到这一点?因为我需要使用命令,但我无法将命令分配给按钮,因为按钮对 ViewModel (命令所在的位置)一无所知。
如您所见,按钮必须存在于数据模板中,然后数据上下文不再是 ViewModel.... 这就是为什么我需要访问父级的 DataContext 才能访问命令的原因。
我希望你能更好地理解我的问题。
谢谢你。
wpf - 如何将关闭命令绑定到按钮
最简单的方法是实现ButtonClick
事件处理程序和调用Window.Close()
方法,但是如何通过Command
绑定来实现呢?
wpf - 通过 XAML 在 PageFunction 表单上设置命令绑定
如果要创建 WPF 窗口或 WPF 页面,可以将命令绑定到 XAML 中的函数。
还有另一种类型的 WPF 表单:a PageFunction
. 但它不允许你输入:
我可以猜测两种可能的解释:
- 因为
PageFunction
是泛型对象,您必须以某种方式将泛型参数输入 XAML。 - 这只是框架中的不一致。
有谁知道我如何在 XAML中CommandBindings
为 a配置?PageFunction
(我知道我可以在代码中做到这一点,但这不是重点)。
c# - CommandBinding 干扰 INotifyPropertyChanged
使用 WPF,我正在构建一个非常简单的文档编辑器,它将提供基本的格式化功能,例如修改用户文本外观的能力,即下划线、粗体、更改字体大小等。
我已经为用户的输入实现了几个 RichTextBox,并希望显示一个按钮来说明类似于 Microsoft Word 的格式选项的切换状态。例如,如果用户按下 CTRL+B,所有输入的文本都将是粗体,而“粗体”按钮则反映这种状态(按下)。
此时,按钮的 IsChecked 属性(使用自定义按钮),被绑定到一个 Property (IsSelectedTextBold)。使用 richTextBox.SelectionChanged 检测选择更改,我调用 OnPropertyChanged("IsSelectedTextBold") (定义如下)。这按预期工作;但是,当用户突出显示一个单词并按下 CTRL+B 时,选择的字体粗细更改为粗体,但按钮不反映更改,因为没有引发 richTextBox.SelectionChanged 事件。寻找一种方法来检测用户何时按下 CTRL+B,我注册了自己的 CommandBinding:
ToggleBold_Executed() 实现切换粗体并调用 OnPropertyChanged("IsSelectedTextBold") 以通知按钮发生了更改。
出于某种原因,PropertyChanged 设置为 null,并且在从 ToggleBold_Executed() 函数引发时不会触发,但在 RichTextBox_SelectionChanged 事件调用时工作正常。
作为旁注,我还考虑将 Button 的 IsChecked 属性绑定到 RichTextBox.FontWeight(使用必要的转换器)。唯一阻止我这样做的是拥有多个 RichTextBox。不确定是否要动态绑定和取消绑定按钮到活动的 RichTextBox。
感谢您忍受冗长的帖子 - 任何帮助将不胜感激。谢谢!
wpf - 多命令绑定
是否可以将多个命令绑定到按钮。
我有一个用户控件,我在我的主应用程序(父应用程序)中调用它。
我想处理两个控件(用户控件以及主窗口)上的单击命令。但是我只能得到一个。
有什么方法可以让我得到这个。
非常感谢任何帮助。
代码片段:
问候, 图沙尔
c# - 如何清除 CommandManager 注册的命令绑定?
我有这个使用 CommandBinding 的控件(WPF),它像这样注册:
所以,当我卸载控件时,我想清除这个绑定。我该怎么做呢?
谢谢!
.net - Application Level shortcut keys in WPF
In WPF application I am currently trying to bind a Command to launch a calculator Tool form any where in the application using shortcut keys, I have created a command but not getting how to map commands and shortcut keys to create universal shortcut keys in my application. Thanks in advance.