事件处理程序位于与MainWindow不同的类中

所以我按照以下网站上的指南来限制文本框可以接受的字符。

How to limit or prevent characters in a TextBox in C#? Or How to create a NumberTextBox or DigitBox object?

我的问题是我无法弄清楚如何在辅助类中创建事件处理程序触发器。 基本上我如何告诉VS在该类而不是MainWindow中查找事件处理程序代码? 我试过搜索,但显然不知道使用的正确术语。 我使用的xaml参考是

xmlns:DigitBox="clr-namespace:System.Windows.Controls;assembly=PresentationFramework" 

有任何想法吗?

使用命令和命令绑定会更好。 我不确定将为您所需function的文本框绑定的特定命令是什么,但WPF的目标之一是减少在后面的代码中使用事件处理程序。

查看本文以获取命令概述和本文,了解如何使用事件连接命令。 WPF命令是实现UI和业务逻辑之间真正分离关注点的最酷function之一。

作为最糟糕的情况解决方案,您可以创建自己的文本框,该文本框inheritance自文本框控件并挂接该类中的事件。 您的控制权将可以重复使用。

我发现最简单的方法是在构造函数中分配事件。

 public MainWindow() { InitializeComponent(); TextBoxCurrency.GotFocus += expandedTextBoxEvents.TextBoxCurrencyGotFocus; TextBoxCurrency.LostFocus += expandedTextBoxEvents.TextBoxCurrencyLostFocus; } 

我已经搜索过在XAML中做到这一点的方法,但我没有找到一种简单而干净的方法来做到这一点。