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

c# - WPF 延迟触发 RoutedEvents

我正在收集为 MouseRightDownButton 触发的所有路由事件并将它们存储在队列中。我有 Sender 对象以及 RoutedEventArgs。

现在,我需要一个一个地触发这些事件,并且稍作停顿。我还想在触发每个事件时更新 UI。

这需要 Timer 类吗?

0 投票
1 回答
454 浏览

wpf - WPF 和路由事件

我有一个 WPF 窗口,它有一个位于 stackPanel 内的按钮,该按钮位于另一个 stackPanel 内

我为 MouseDown 事件的按钮编写了一个事件处理程序。我想为按钮和父级(堆栈面板)和父级的父级执行此事件处理程序三次

如何通过仅编写一个事件处理程序来使用路由事件来实现这一点?我不想重复事件处理程序代码。

谢谢

0 投票
3 回答
4817 浏览

c# - 将 RoutedEvent 或 RoutedCommand 冒泡到 ViewModel

我有一组 ViewModels,它们使用一种样式呈现为选项卡,以提取相关内容以显示在选项卡上:

这是 TabControl:

这是风格

我们正在创建一个用户控件的实例并将 TabViewModel 的“内容”属性设置为这样,以便用户控件显示在 TabItem 的内容区域中。

我的问题是,我想允许添加到 TabViewModel 的 Content 属性的 MyUserControl(或其任何子控件)被允许引发 TabViewModel 处理的事件

有人知道我会怎么做吗?

我们已经尝试使用 RoutedEvents 和 RoutedCommands,但无法让任何东西 100% 工作并使其与 MVVM 兼容。我真的认为这可以通过 RoutedEvent 或 RoutedCommand 来完成,但我似乎无法让它工作。

注意:我已经删除了一些与 Prism 相关的特定代码,但如果您想知道为什么我们会做一些如此愚蠢的事情,那是因为我们试图通过使用 Prism 的 RegionManager 来保持与控制无关。

0 投票
2 回答
1997 浏览

wpf - WPF中的触发器和事件有什么区别?

WPF 中触发器和事件的主要区别是什么?我们可以使用事件来做所有的事情,我们可以通过触发器来做,那么为什么我们需要触发器呢?

0 投票
3 回答
14759 浏览

.net - RoutedEventArgs 与 EventArgs

我正在学习 WPF/Silverlight 并在 MS 视频广播中看到现在建议使用RoutedEventArgsover EventArgs;虽然它没有确切说明原因。

我有一个 win forms 应用程序,它使用“小部件”接口,试图不绑定到特定的显示技术(在 Presenters / ViewModels 中),所以如果我的 IButton Click 事件现在需要采取RoutedEventArgs现在我猜它不是一样有用。

有人可以解释一下我是否应该在所有情况下都切换到RoutedEventArgs,为什么?

顺便说一句,在我描述的时候,还有其他人有关于使用界面小部件的经验/意见吗?

0 投票
1 回答
8166 浏览

wpf - WPF MVVM 路由事件

关于 MV-VM 和命令绑定 (RelayCommand) 的讨论很多,但在 MV-VM 模式中将路由事件绑定到处理程序的讨论不多。我想找到最好的方法。

下面是一个使用自定义事件和绑定到 VM 的事件处理程序的 RoutedEvent 绑定示例。

在我的 Vm 中,我会有一个与此类似的事件处理程序。

这只是从命令绑定的许多示例中得出的一个概念。我如何让它适用于路由事件。

0 投票
3 回答
1435 浏览

asp.net - 在 Asp.Net 网页上禁用文本区域外的返回键(包含 ajax 代码)

我有一个 Asp.Net 网页,具有常见的 Asp.Net 表单。页面的外部“边框”(即主菜单、标题等)是使用普通 Asp.Net 代码使用母版页构建的。该页面的内容使用 jQuery 来显示动态表单并将数据发送到服务器。

如果我在该页面上按下返回键,我会跳转到(或多或少)随机页面——这不是用户所期望的。;-)

有一些文本区域,用户必须能够输入换行符。否则完全禁用返回键就可以了。有什么防弹方法可以做到这一点吗?

我在网上找到了一些解决方案,它们捕获按键事件并忽略 \x13,但这并没有真正起作用。只要页面刚刚加载,它就可以工作,但是一旦我点击了一些元素,返回键的行为就像往常一样。

任何提示将不胜感激!

阿奇姆

0 投票
1 回答
2060 浏览

wpf - WPF 中的命令绑定内存泄漏

当我创建一个具有到 RoutedUICommand 的 CommandBinding 的用户控件时,我担心我会出现内存泄漏。

设想:

将 RoutedUICommand 作为 c 类中的静态对象,我在其中存储我的命令 在用户控件上实现 CommandBindings。将用户控件添加到主窗体。从主窗体中删除用户控件,将对它的引用设置为空。

命令绑定的 canExecute 继续触发。我没有对 UserControl 的引用,所以它泄露了。并且在表单关闭后会持续触发很长时间。(我还没有看到它停止)如果我强制垃圾收集它会被收集(好吧 canExecute 停止触发)

我有一个测试项目来说明这一点。我在 canExecute 中有一个 Console.WriteLine,它打印出触发该方法的对象的哈希码。它有一个添加新用户控件的按钮和一个删除它的按钮。

我不应该关心这个吗?如果强制,用户控件会被收集。这是否意味着它将在下一次收集时收集?我注意到我们的应用程序的性能下降并且正在跟踪内存泄漏等。我们有复杂的表单,其中包含很多 ui 元素,当从布局中删除时,它们会占用处理器和内存空间。(我们使用了很多命令)我认为一旦从可视化树中删除了某些东西,它就无法再接收路由事件。我错过了什么?

0 投票
1 回答
818 浏览

c# - WPF:带有额外信息的自定义路由事件

我有一个普通的 WPF 窗口,我们称它为TopLevel其中有一堆控件,除其他外,ListView它应该在应用程序的不同元素中记录某些事件。

所以假设我有一个Grid其中TopLevel包含一堆名为Task. 每个Task都有一个与它们关联的对象作为公共属性,我们称之为它Order,以及一个标准复选框。

现在TopLevel,每当用户选中 a 中的复选框时,我想接收一个事件Task,但该事件也应该包含该Order对象,因此我可以使用它TopLevel来将其放入事件日志中。

我怎么做?我猜我想为它使用路由事件,但我不知道如何让复选框单击“查找”Order以将其向上发送到TopLevel.

0 投票
1 回答
1435 浏览

c# - 自定义附加事件的处理程序

我正在使用我创建的自定义附加事件,我正在尝试向该事件添加处理程序

这里是 XAML 代码

我在 InitializeComponent 的运行时出现此错误

“System.String”类型的对象无法转换为“System.Windows.RoutedEventHandler”类型。

任何人都知道我为什么会收到这个错误?谢谢 !

这是我的事件代码

DropEventArgs 代码