我有大约 10 个使用相同事件的文本框 - 然后我只是将 sender 转换为文本框并对文本进行任何更改。我很好奇,有没有更简单/更简洁的方法将这些事件分配给代码隐藏方法?现在,我只是通过将每个事件的方法重复分配给每个文本框来做到这一点。
有什么可以用模板或任何东西来完成的吗?下面是每个文本框上的内容。这只是复制和粘贴,但它有很多额外的代码行,如果有 WPF 解决方案,我想避免它。
...
LostFocus="textBox_LostFocus"
MouseDoubleClick="selectText"
GotKeyboardFocus="selectText"
PreviewMouseLeftButtonDown="selectivelyIgnoreMouseButton" />
提前致谢。
最佳答案
是的,有更好的方法。为文本框创建样式。
<Style TargetType="{x:Type TextBox}">
<EventSetter Event="LostFocus" Handler="textBox_LostFocus" />
<EventSetter Event="MouseDoubleClick" Handler="selectText" />
<EventSetter Event="GotKeyboardFocus" Handler="selectText" />
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="selectivelyIgnoreMouseButton" />
</Style>
Here's一篇简单的博客文章,解释了更多相关信息。
关于WPF/XAML : multiple controls using the same events - is there an easier way?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7196456/