我创建了一个键盘,它具有触摸屏界面的递增和递减按钮。我还覆盖TextBox以创建一个控件,当按下键盘按钮时,该控件将当前整数增加或减少1。我的构造函数正在注册DecrementClickedEvent,如下所示:
EventManager.RegisterClassHandler(
typeof(UIElement), SoftKeyPad.DecrementClickedEvent,
(RoutedEventHandler)OnDecrement);
这是我的经纪人:
private void OnDecrement(object sender, RoutedEventArgs e)
{
try
{
if (this.IsFocused)
{
var currentNumber = Convert.ToInt32(Text) - 1;
Text = currentNumber.ToString();
}
}
catch (Exception)
{
//If we can't convert, we can't decrement.
if (Text.IsNullOrEmpty())
{
Text = "0";
}
}
}
然而,这会导致我发现的内存泄漏,因为处理程序需要是静态的。如果我让处理程序保持静态,我无法获取文本以便更改它。我是以错误的方式来做这件事的吗?如果我将OnDecrement设为静态,我该如何编辑文本?