【发布时间】:2015-11-24 10:08:12
【问题描述】:
我最近有一个要求,即我的应用程序中的所有文本框在离开文本框时都应该自动修剪文本。我不能/不想通过向每个文本框添加转换器或事件,或者通过在我的视图模型中为每个绑定编写/重写属性来做到这一点。首先,它会非常混乱和重复,其次,我的许多文本框已经有了转换器,而且 afaik,如果不编写多转换器,就无法连接多个转换器。
由于您不能在每次击键时都应用修剪,因此修剪必须在取消焦点事件之后但在绑定到我的视图模型之前发生。
这样做的最佳方法是什么?编写我自己的文本框类?某种控制模板/触发器?我对这些选项不够熟悉,不知道哪条路径最简单。
我已经在 App.xaml 中为我的所有文本框设置了一个样式,当 IsReadOnly 设置为 true 时,这使得它们看起来像 IsEnabled=false,所以这可能会使事情复杂化。
【问题讨论】:
-
当你想使用该值时为什么不修剪?
-
如果我设计了整个系统,那将是一个不错的选择,但此应用程序会保存到其他应用程序使用的数据库中,假设字符串已被修剪。
-
那么您可以在将值提交到数据库之前修剪该值。
-
您可以使用附加属性。这将是重复的,但易于维护。编写自己的文本框控件也是一个好方法
-
Basti,许多文本框直接绑定到实体框架实体,然后保存到数据库中,所以我不需要“手动”处理它们,我想保留就是这样。