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

时间:2011-11-05 16:38:19

标签: c# wpf event-handling partial-classes

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

http://www.rhyous.com/2010/06/18/how-to-limit-or-prevent-characters-in-a-textbox-in-csharp/

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

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

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

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

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

我已经在XAML中找到了一种方法,我没有找到一种简单易用的方法。

答案 1 :(得分:1)

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

查看this article以获取命令概述,并查看this article以获取将命令与事件挂钩的方法。 WPF命令是实现UI和业务逻辑之间真正分离关注点的最酷功能之一。

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