问题标签 [inputbinding]

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 投票
3 回答
4182 浏览

wpf - ControlTemplate InputBinding 中的 ListBoxItem MouseBinding 不起作用 MVVM

我希望对某人来说是一个明显的问题。我希望在用户双击 ListBox 内的 ListBoxItem 时触发 Edit 命令。我以前在用户控件中做过这个,但想直接在一个视图中做,因为它是一个足够简单的列表框。但它不会接线。

这是列表框:

请注意,顶层的 Delete Key 绑定工作得很好。这是引用的样式(作为单独的 ResourceDictionary 引入,但将样式内联没有区别):

我将鼠标绑定放在两个地方只是为了看看它是否有所作为,但事实并非如此。那里没有任何接线。其他一切都按预期工作。如果我在视图中创建一个普通按钮并将其指向 DataQuerySortEdit 命令,它会按预期工作。

我错过了什么吗?谢谢你的帮助。


编辑:只需添加更多信息以响应 J 的回复。我为 ControlTemplate 的 Border 提供了一个相对于最近列表框的绑定,并为列表框命名,以便输出确认它会找到它。这是输出窗口:

因此,第二次尝试绑定(我猜是 Border InputBinding 中的那个)确实可以很好地找到正确的列表框,但仍然找不到 ICommand。我尝试对窗口、包含列表的网格等进行相对查找,但仍然无法连接。正如 J 提到的那样,我还尝试将相对搜索直接放在 MouseBindings 中,它们会导致相同的错误。


EDIT2:这里是 ViewModel 中的命令和属性,使用 MVVMLight

取出 CanDataQuerySortEdit 没有区别。我知道一切正常,因为如果我创建一个按钮并指向它,它就可以工作。如果我还在 ListBox 中为鼠标创建一个输入绑定,例如有效的 Delete 键 - 当然,只要我在 ListBoxItems 之外单击即可。

EDIT3:这是视图本身的一部分,包括类、数据上下文和资源。我尝试将相对绑定设置为“{x:Type Window}”和“{x:Type l:ToolkitWindowBase}”。ToolkitWindowBase 直接扩展了 Window。frmDataBrowserViewModel 扩展了一个名为 ToolkitViewModelBase 的类,它从 MVVMLight 扩展了 ViewModelBase:


EDIT4:以防万一有人还在列出,帮我一个忙,创建一个名为“WpfMvvmApplication1”的新WPF项目,其中有一个名为“BindingTestWindow”的窗口和一个名为“MainWindowViewModel”的视图模型然后放置窗口(应该很简单剪切/粘贴,除非您为文件/项目使用不同的名称):

对于 VIEWMODEL:

这里面没有别的东西。当输入绑定在 listboxtiem 内时,它给了我绑定错误,但在列表框本身时却没有。似乎它应该可以工作,因为输出表明它确实在 FindAncestor 中找到了窗口。

0 投票
1 回答
193 浏览

r - 从 server.R 调用“绑定”输入

我成功实现了 Shiny 的绑定能力,但是该函数是在 ui.R 中定义的,并且从 server.R 对这个新输入的任何调用都会导致函数未找到错误。

我正在传递session给 server.R (不确定这是否会有所不同),并且我还创建了一个 global.R ,其中仅包含该函数(不确定我是否需要除此之外的任何内容,因为这甚至不允许我调用ui.R 中的函数)。

如何从 server.R 调用自定义闪亮输入函数(特别是在 a 中renderUI)?

此处的示例代码:(sortList从 ui.R 但不是 server.R 的调用工作正常) https://gist.github.com/jpd527/9687359

0 投票
5 回答
17215 浏览

wpf - InputBindings 仅在获得焦点时起作用

我设计了一个可重用的用户控件。它包含 UserControl.InputBindings。它非常简单,因为它只包含一个标签和一个按钮(以及新属性等)

当我在我的窗口中使用控件时,它运行良好。但是键绑定仅在聚焦时才有效。当一个控件绑定到 alt+f8 时,此快捷方式仅在它获得焦点时才有效。当另一个具有自己绑定的焦点被聚焦时,那个可以工作,但 alt+f8 不再有效。当所有控件都没有焦点时,没有任何效果。

如何实现我的用户控件定义窗口范围的键绑定?

尤其是遵循 MVVM 设计模式(使用 Caliburn.Micro),但我们不胜感激。


用户控件的 XAML:

示例用法:

如前所述,每个按钮在鼠标单击时都有效(执行被触发),当聚焦时,我可以使用空间来激活按钮,并且聚焦按钮的输入绑定有效,但从不聚焦。

0 投票
0 回答
1140 浏览

wpf - WPF ListBox KeyBinding未触发

我有一个 ListBox,我正在尝试绑定“Delete”键以删除项目(绑定到删除命令并更新集合),但该事件永远不会被触发。更有趣的是,第一次加载表单时会触发该事件。我确实有多个列表框,我想相应地处理删除。

这是xaml代码:

这是视图模型:

0 投票
1 回答
236 浏览

c# - 如何区分用户控件内部和外部的点击输入?

(请将以下每个控件作为使用 MVVM 模式创建的控件)

所以,我有一个UserControl放在我的MainWindow. 我想要我的UserControl, 如果点击(在MainWindow, 里面UserControl),背景变成另一种颜色,如果我点击MainWindow, 但在外面UserControl,那么UserControl的背景会变成原来的颜色。

我试过的:

  1. 我试图在UserControl.InputBindings其中应用一个命令来检测鼠标输入(MouseBinding),但唯一MouseBinding提出的是MouseBinding在(只有当点击输入在外面时才Window.InputBindings应该提出),但显然,无论发生点击,唯一提出的只是其中的一个。UserControlMouseBindingWindow.InputBindings
  2. 区分in和。CommandParameter_MouseBindingWindow.InputBindingsUserControl.InputBindings

问题 :

  1. 如何区分MouseBinding点击内部UserControl和外部?

谢谢

0 投票
2 回答
2144 浏览

c# - 如何简化 XAML 中的 InputBindings?

首先,这是我的代码:

这些代码没有错误,所以它工作得很好。但是,如果我的应用程序InputBindings 很多InputBindings.

那么,是否可以(以任何方式)简化/缩短它们?那是因为我的应用会需要很多InputBindings/的修饰符组合,感觉一个一个输入会显得“不整齐”。米KeyBinding

或者也许这是唯一的方法(使用 MVVM)?

请澄清任何需要的东西:D


以防万一,这些是 Command 和 ViewModel 类中的相关方法:

我的 ViewModel 的一部分:

因此,根据按下哪个修饰键,会有细微的行为差异。(拆分成不同的方法对我来说感觉很糟糕)


更新:我已经阅读了一些解释InputGestures。在http://msdn.microsoft.com/en-us/library/ms752308%28v=vs.110%29.aspx据说this.InputBindings.Add(Blabla)(我猜来自 xaml.cs),它可以在 ViewModel 中完成吗?或者它是否严格需要通过 XAML 完成,所以,如果我的应用程序中有很多组合键,例如上面的示例,它仍然需要以“长”方式完成吗?

如果可能,请提供一些代码示例,以便我更好地理解它。谢谢

(不太清楚怎么问,所以请随时澄清)

0 投票
2 回答
517 浏览

wpf - PreviewMouseLeftButtonDown 和 InputBindings 的关系

使用. .NET 4.5.1_ Windows 8.1 Pro在我的UserControl我有网格。我需要在这个网格中预览和处理鼠标事件。所以我覆盖了这个PreviewMouseLeftButtonDown事件:

UserControl也有一些InputBindings正在静态构造函数中注册。例如:

InputBinding依赖PreviewMouseLeftButtonDown?!

现在,当我在我的处理程序中设置时,我e.Handled的s 停止工作!为什么?!我无法理解鼠标处理程序如何链接到我的键盘快捷键!truePreviewMouseLeftButtonDownInputBinding

0 投票
1 回答
774 浏览

wpf - 当 WPF 内容托管在 WinForms 中时如何为命令使用输入绑定

我有带有选项卡控件的 Windows 窗体窗口,其中一个选项卡主机 ElementHost 以 ContentControl 作为子元素。此控件具有输入绑定的集合,这些输入绑定仅在任何子元素具有输入焦点时才起作用,但如果焦点丢失,它们将不再做出反应。在这种情况下是否可以在更高级别上定义这些输入绑定?

0 投票
1 回答
323 浏览

c# - 键绑定标签

我有TreeView以下定义:

此视图与它的代码隐藏文件有关:

DataContext="{Binding RelativeSource={RelativeSource Self}}"

只是工作InputBinding正常。LeftDoubleClick

但是InputBinding“删除”键不起作用。

绑定到的Command地方如下所示:KeyBinding

在构造函数中我定义:

DeleteFolder-Method 看起来像:

我究竟做错了什么?

我已经检查了输出窗口的绑定错误,但没有。

0 投票
0 回答
94 浏览

c# - c# wpf 定义本地热键来启动一个函数

我需要定义一些热键来允许我启动一些小功能,但是我尝试使用需要使用命令和 CommandBinding 的 InputBinding,还有其他方法吗?我只想调用一个函数。