问题标签 [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 投票
1 回答
44 浏览

wpf - 如何将完整的 Click MouseGesture 添加到 XAML 中的 ListBoxItem

我有ListBoxItem一个LeftClick手势:

但实际上它不是真正的点击,它只是一个MouseLeftButtonDown手势。Command无论按下后按钮是否抬起,都会执行。

MouseDown我想MouseUpListBoxItem. 反正有这样做吗?非常感激。

我也找不到将 a 添加CommandExpander. 上面显示的方法ListBoxItem不起作用。这里有什么魔法吗?谢谢!

0 投票
1 回答
238 浏览

c# - 在 WPF (.net core 3.1 /.net 5) 中创建一个简单的、未修改的键绑定

这是一个老问题,这里已经问过(在 WPF 中创建一个简单的、未修改的键绑定),但答案对我不起作用。我还是有问题。

我将 .net core 3.1 与 WPF 一起使用,我想KeyBinding通过代码将 a 定义为未修改的键。

在 XAML 中

它就像一个魅力。但是如果我尝试定义KeyBindingin 代码,

None+H我在启动应用程序时直接收到手势的“NotSupported”异常。

原始异常(德语,Visual Studio 2019):

有谁知道原因,为什么 XAML 正在工作并且设置InputBindingby 代码失败?

亲切的问候,克里斯托夫

PS:

根据一些评论,我在构造函数后面的代码中发现了以下代码行。

如果我删除这一行,异常就消失了。所以我认为异常的原因找到了。

解决方案(添加于 2020-08-09):

我在问题中提到的代码是正确的。只有我在文件后面的代码中找到的行是异常的原因。如果您比较您看到的代码行,就会发现使用了两个不同KeyBinding的构造函数。

问题是,无参数KeyBinging()构造函数和KeyBinding(key, modifier)构造函数以不同的方式工作。

带有键和修饰符参数的构造函数将在内部创建一个KeyGesture。如果您尝试使用没有修饰键的“可打印”键,KeyGesture 将引发异常。KeyGesture 甚至不支持 shift 键。所以None + HShift + H无效。

但是在 KeyBinding 类本身中,使用这些组合键是没有问题的。如果您需要将 KeyBinding 定义为“可打印”键,只需使用无参数 KeyBiding 构造函数并手动添加 RoutedCommand 和键,然后再将 KeyBinding 添加到 InputBindings。这显示在上面的代码中。

对于评论,我不得不说“谢谢”。没有帮助,我不会在文件隐藏代码中看到我的错误。

0 投票
1 回答
33 浏览

angular - 使用输入绑定将数据从祖父组件传递到子组件

我的目标是通过bid-filter.component (子)将位置数组从results.component(祖父)传递到destination-selector.component(父)。

results.ts(祖父母)

此处的日志已定义并显示位置数组

results.html(祖父母)

出价过滤器.ts(父)

这里的日志是未定义的

出价过滤器.html(父)

目的地选择器.ts(子)

也显示未定义

我在这里错过了一些非常明显的东西吗?我检查了一些不适用于我的问题的解决方案Angular 2 Component @Input not working

任何帮助表示赞赏。

0 投票
1 回答
795 浏览

json - 如何为 Azure Function Blob Trigger 输入绑定指定多种文件类型?

我希望只允许将特定文件类型上传到 Azure 存储以触发 Azure 函数。

当前function.json文件:

我会添加另一个path这样的值吗...

...或像这样的值数组...

似乎无法在docs中找到示例。

编辑: 谢谢@BowmanZhu!你的指导很棒。

  • 将触发器更改为EventGrid
  • 实际上能够创建一个Advanced Filter而不是创建多个订阅: 在此处输入图像描述
0 投票
2 回答
277 浏览

azure-functions - 如何从上传到 Azure 存储帐户的任何文件触发 Azure Function?

单一 Azure 函数。我希望它从上传到 Azure 存储帐户的所有文件中触发。Storage Account 有多个顶级容器,所以我不能指定一个容器,必须是整个帐户。

文件是如何function.json处理的?

这似乎没有触发功能:

路径需要引导/吗?( "path": "/{name}.json")

0 投票
1 回答
185 浏览

wpf - 不允许对 TextBox 进行双击鼠标操作

我正在尝试以这种方式设置文本框的双击手势:

但是我收到不允许鼠标操作 MOUSEDOUBLECLICK 的错误。

我想将它绑定到我的视图模型中的命令。

输入绑定是这样做的吗?

0 投票
0 回答
142 浏览

json.net - 使用 Json.Net 进行 Azure EventGridEvent 的输入绑定

我目前Json.Net在整个项目中都在使用它,它就像一个魅力。不幸的是,Azure Functions 的输入绑定用于System.Text.Json反序列化 EventGrid 事件 json 并将其绑定到库中的EventGridEvent对象Azure.Messaging.EventGrid 4.0.0.-beta.4

看看这里:https ://github.com/Azure/azure-functions-host/issues/5469

这会导致大量问题,因为我的所有习惯JsonConverters根本不起作用,这会导致对象反序列化不正确。Newtonsoft.Json从to更改System.Text.Json为大量返工,如果可以的话,我绝对希望避免这种情况。

有没有办法强制使用输入绑定Json.NetSystem.Text.Json不是通过 DI inFunctionssStartup.Configure()或其他方式?

0 投票
0 回答
39 浏览

c# - 是否可以获得特定命令的任何“活动”命令绑定?

我们有一个案例,我们有两个外部定义的RoutedUICommand对象(即我们不拥有它们,因此我们无法更改它们),它们预先连接到相同的CTRL+N键绑定。我们可以在我们的代码中通过手动设置InputBindings我们想要的来解决这个问题,就像这样(注意:AddMany是我的便利扩展,它需要一个参数数组):

这工作正常并解决了我们问题的这一部分,因此我们现在可以使用我们认为合适的快捷方式。

我们仍在尝试解决的问题是我们有全局样式的按钮,这些样式会自动应用它们的工具提示来显示它们分配的快捷键。它基于命令本身指定的内容,在这种情况下当然是CTRL+N所以这就是它们都显示的内容,即使现在是CTRL+ ALT+N感谢手动指定的InputBinding.

现在虽然我们可以四处走动并对工具提示进行硬编码,但我想知道是否有一种方法可以代替询问命令它的绑定/绑定是什么,如果我们可以以某种方式查询系统以查看当前的键绑定相对于给定控件(即按钮)实际上是有效的。但是,我不确定如何获取该信息,而无需手动遍历InputBinding特定的可视化树搜索集合RoutedUICommand

是否可以询问输入系统实际上是哪个键绑定,而不仅仅是在RoutedUICommand?

一个“hack”替代方案是使用正确的键绑定定义我们自己的“镜像”命令,以便样式正确更新工具提示,然后我们只需将大多数操作委托给实际命令。就像我说的,这是一个 hack,但它会起作用。

0 投票
0 回答
66 浏览

c# - 如何在父控件上获取键击以到达承载实际绑定但未聚焦的子控件

如果我需要澄清或发布更多代码,请告诉我!

我可以找到很多关于如何将击键从子元素传递到父元素的资源,但不是这样。

我解释我的用例:

我有一个带有几个可聚焦控件的父级Window(我们称之为它wndSession)和一个使用绑定分配ContentControl其内容(a )的控件。UserControlDataTemplate

和:

现在每个人都UserControl可能分配了不同KeyBingind的 s,只要重点放在UserControl所有作品上就可以了。

UserControl 上的绑定示例:

我的命令都是这样定义的:

现在到这个问题:

如果我单击父窗口上的任何可聚焦控件wndSession,则UserControl或其当前聚焦的子控件将失去焦点,并且父窗口 ( wndSession) 的控件将获得焦点(好吧,到目前为止我希望如此)。

但正因为如此,除非我单击第一个的任何控件,否则UserControl不会再对 s 做出反应。这不是一个非常好的用户体验......KeyBindingUserControl

我需要的是一种方法:

首先,我想到了类似“冒泡”对子控件的击键wndSession,尤其是UserControl在尚未解决 KeyBindingContentcontrol的事件中。wndSession

但正如所说,这会导致许多问题。因此,为了避免冲突(哪个控件现在可以使用它的绑定等),我认为需要将击键传递给指定的目标,在我的情况下,如果wndSession无法处理,它将是 ContentControl 中的 UserControl没有指定绑定的键。

简而言之:wndSession作为路由器运行,将所有未知的击键(未由 a 注册)KeyBinding传递给网关/代理(ContentControl/ UserControl

那么就只有一条沿着树向下的路径,几乎没有冲突的风险。目前我无法从父级模拟目标控件上的击键,因此它的 KeyBinding 可以触发。

0 投票
1 回答
36 浏览

c# - 为什么这个 DataGrid 鼠标输入绑定在一个项目中有效,而在另一个项目中无效?

我们正在构建一个包含 DataGrid 的 WPF 应用程序,如果双击该行,它应该在当前选定的行上调用一个函数。我们的目标是尽可能采用 MVVM 方法,尽量避免事件。

因为我在以前的应用程序中为 DataGrid 做了类似的事情,所以我认为这会起作用:

在此工作应用程序中,ShowDetailsCommand指向一个方法,该方法通过数据绑定访问当前选定的 DataGrid 项SelectedItem

在新项目中尝试同样的方法似乎根本不起作用。命令指向的方法永远不会被调用(使用断点和控制台输出进行测试),并且也没有关于在 DataContext 中找不到命令的错误消息。我们也尝试将<InputBindings>块直接移动到 Window 对象中,只是为了测试 DataContext 是否可能进一步向下更改,但双击仍然没有反应。

据我所知,两个 DataGrid 之间的唯一主要区别是:

  • 旧的ItemsSource绑定到对象集合,而新的绑定是通过在设计器中将 DataSet 拖到其上来创建的
  • 旧项目的 DataContext 是一个单独的 ViewModel 类,而新项目是窗口自己的 Codebehind 类(DataContext="{Binding RelativeSource={RelativeSource Mode=Self}}"在 Window 上声明)

这些中的任何一个都可能是 InputBinding 不起作用的原因吗?如果没有,我们还有什么可能做错的吗?抱歉,如果这没有足够的信息,我只是非常不确定问题可能出在哪里。如果需要,我将尝试提供有关代码的更多信息。