问题标签 [routed-events]

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 回答
1292 浏览

c# - 处理从主窗口中的模式对话框引发的冒泡事件

我的 WPF 应用程序中有一个模式对话框,允许用户登录到服务器。该对话框仅包含一个处理所有登录内容(UI、Web 服务调用以及在调用返回时引发路由事件)的用户控件。

一切正常,我可以在对话框中处理我的事件(登录成功时关闭对话框)。但是,我无法在我的主应用程序中处理该事件(一旦用户登录,我应该刷新 UI)。

如何在引发事件的窗口之外拦截此类路由事件(如果可能的话)?如果不可能,通常的处理方法是什么?

0 投票
1 回答
883 浏览

wpf - 在 WPF 中使用自定义 RoutedEvent 会导致 TargetInvocationException

我正在尝试自定义路由事件,但在使用附加事件处理程序进行编译时出现 TargetInvocationException。

我在自定义控件中有以下代码EventRaiserControl

然后,我的主窗口中有以下 XAML:

在 MainWindow 代码中使用以下处理程序:

我的代码适用于这个处理程序:

TargetInvocationException但是在我添加附加的处理程序的那一刻失败了:

有人可以帮忙吗?我错过了什么/滥用什么?

非常感谢

0 投票
2 回答
2184 浏览

wpf - ComboBox PreviewKeyDown 不会为 Return 键触发

我想有条件地阻止 Enter/Return 键选择 ComboBox 下拉菜单中突出显示的项目。所以我将一个事件处理程序连接到 ComboBox.PreviewKeyDown 以便我可以设置 Handled 属性,但永远不会输入事件处理程序。当我使用 Snoop 观看事件时,会为其他键触发 PreviewKeyDown 事件,但当我按下返回键时它不会触发;甚至不在窗口级别。为什么事件没有触发?

编辑:组合框需要是可编辑的(IsEditable=true)。然后打开下拉列表。开始在您的列表中输入一个项目,它应该为您选择它。按返回键。

0 投票
1 回答
1385 浏览

vb.net - 无法执行 RoutedEventHandler

我有循环来创建一列按钮,现在我希望将事件处理程序实现到所有按钮中但不工作。

创建一列按钮的迭代

我希望在单击 btnFriday 的 1 时执行以下事件,该事件打开一个称为 Bookslot 的子窗口

我收到类似的错误

Public Event Click(sender As Object, e As System.Windows.RoutedEventArgs)'是一个事件,不能直接调用。使用“RaiseEvent”语句引发事件

大多数解决方案都是使用带有 silverlight 的 C# 构建的,它们似乎运行良好。虽然我在使用带有 silverlight 的 VB.NET 时遇到问题,但有什么想法吗?

0 投票
1 回答
203 浏览

wpf - 查看什么处理了路由事件

基本上我们有一个巨大的项目,我们有一个有时会被触发的事件处理程序,而其他一些则不是。我认为这是因为在代码丛林的某个地方,我们正在处理那个事件,所以它不会冒泡到我们需要的地方。无论如何要找出它在哪里被处理?

谢谢!

0 投票
1 回答
844 浏览

c# - 将点击事件添加到自定义控件

如何将 Click 路由事件添加到我的自定义类?

这行不通。当我单击该项目时,不会发生 Click 事件。

任何的想法?

0 投票
1 回答
180 浏览

c# - 将事件从项目路由到 MVVM 中的集合

我怎么能做这样的事情?

ICommand Add_as_Friend 是ItemsControl 中的一个按钮。

我需要将我的事件发送到 MainViewModel 而不是那个人。

0 投票
3 回答
13761 浏览

c# - 使用带有 caliburn 微 Message.Attach 的附加事件

我正在尝试使用 caliburn 微消息来触发我创建的附加事件:

在 XAML 本身中,我添加了以下行:

助手引用正确的命名空间。我还尝试了其他失败的版本(完整命名空间):

尝试自己设置交互事件:

当我尝试添加一个正常的事件触发器时,一切正常,所以它不是我附加的事件声明:

我在这里做错了什么?有没有办法附加一个附加的事件并使用 caliburn micro 调用它?

0 投票
1 回答
1250 浏览

c# - 在 DataGrid 中一致地使用 ICommand 和 InputBindings

我正在尝试创建一个具有以下功能的 DataGrid:

  • 只读数据网格,但通过双击和单独的编辑表单提供编辑功能(双击特定行)
  • 调用新/编辑/删除表单的 ContextMenu(右键单击整个 DataGrid)
  • 调用删除表单的删除键(在特定选定行上)

我认为使用 ICommand 是个好主意,所以我创建了一个这样的 DataGrid:

然后我意识到,双击一行不起作用,所以我添加了这个:

当然删除键也不起作用,我添加了这个:

为什么我必须这样做?使用命令来防止这种对事件的攻击难道不是重点吗?我错过了什么吗?

在我简单而完美的世界中,我想在 CanExecute 方法中决定是否适合处理命令,而不是订阅大量不同的事件处理程序。

0 投票
2 回答
288 浏览

c# - DataTemplate 中的父子对象

在我的 MainWindow 中,我有一个绑定到POCO 对象ListBox的who:ItemsSourceObservableCollectionLayout

此外,在 MainWindow 中,我们使用UserControl(LayoutUserControl) 定义 Layout 对象的可视化表示:

当我们将对象添加到 Layouts 集合时,我们会看到新的 LayoutUserControls 填充了 ListBox。这很简单。

现在,我想做的是以某种方式从 MainWindow 与各个 LayoutUserControls 进行通信。具体来说,从 MainWindow,我想在每个 LayoutUserControls 上调用一个方法...如果我尝试遍历 ListBox 的 Items 集合,我得到的只是对 Layout 对象的引用,而不是 LayoutUserControls。由于 LayoutUserControls 是在 DataTemplate 中定义的,因此我没有命名引用来访问它们...

是否有 WPF 构造支持这种从父控件到子控件的交互?RoutedEvents 是我的第一个想法,但它们只支持子到父(气泡)通信。也许命令是要走的路?

任何帮助,将不胜感激。

谢谢!