我有更多的xaml文件。在每个文件中,我有:
<TextBox TextChanged="OnTextChanged"/>
在后面的一个代码中,我有:
private void OnTextChanged(object sender, TextChangedEventArgs e)
{
var myInput = sender as TextBox;
myInput.Text = myInput.Text.Replace(",", ".").Trim();
myInput.CaretIndex = myInput.Text.Length;
}
如何在其他xaml文件中使用OnTexChanged
方法(无需复制/粘贴)?谢谢。
2条答案
按热度按时间hjqgdpho1#
事件处理程序本身必须位于同一个类中,因此不能编写类似
<TextBox TextChanged="MyOtherClassName.OnTextChanged"/>
的代码。但是为了封装实际的功能,你可以创建一个自定义的(但非常简单的)
TextBox
类:要重用该功能,只需使用自定义控件而不是内置的
TextBox
控件,即在XAML标记中将<TextBox TextChanged="OnTextChanged"/>
替换为<local:CustomTextBox>
。gojuced72#
有很多解决方案,其中之一是创建从TextBox派生的类
1.创建一个wpf NET项目(这里称为WpfApp3)
ValidatedTextBox.cs
MainWindow.xaml
Mainwindow.xaml.cs: