事件处理程序位于与主窗口不同的类中
本文关键字:窗口 程序 事件处理 | 更新日期: 2023-09-27 18:13:32
所以我按照下面网站的指南来限制文本框可以接受的字符。
http://www.rhyous.com/2010/06/18/how-to-limit-or-prevent-characters-in-a-textbox-in-csharp/我的问题是我不知道如何使事件处理程序触发二级类。基本上我如何告诉VS寻找事件处理程序代码在那个类而不是主窗口?我试着搜索,但显然不知道正确的术语。我使用的xaml引用是
xmlns:DigitBox="clr-namespace:System.Windows.Controls;assembly=PresentationFramework"
任何想法?
我发现最简单的方法是在构造函数中分配事件。
public MainWindow()
{
InitializeComponent();
TextBoxCurrency.GotFocus += expandedTextBoxEvents.TextBoxCurrencyGotFocus;
TextBoxCurrency.LostFocus += expandedTextBoxEvents.TextBoxCurrencyLostFocus;
}
我已经在XAML中搜索了一种方法,但我没有找到一种简单而干净的方法来做到这一点。
最好使用命令和命令绑定。我不确定要为文本框绑定什么特定的命令来实现所需的功能,但是WPF的目标之一是减少后面代码中事件处理程序的使用。
查看这篇文章,了解命令的概述,并查看这篇文章,了解将命令与事件联系起来的方法。WPF命令是实现UI和业务逻辑之间真正的关注点分离的最酷的特性之一。
作为最坏情况的解决方案,您可以创建自己的文本框,该文本框继承自文本框控件,并将该类中的事件连接起来。然后您的控件将被重用。