事件处理程序位于与主窗口不同的类中

本文关键字:窗口 程序 事件处理 | 更新日期: 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和业务逻辑之间真正的关注点分离的最酷的特性之一。

作为最坏情况的解决方案,您可以创建自己的文本框,该文本框继承自文本框控件,并将该类中的事件连接起来。然后您的控件将被重用。