使用 DataBinding 将一个数据库文本拆分为 3 个文本框

Posted

技术标签:

【中文标题】使用 DataBinding 将一个数据库文本拆分为 3 个文本框【英文标题】:Split one database text into 3 textboxes with DataBinding 【发布时间】:2021-01-09 10:55:05 【问题描述】:

我有 3 个字母的数据库单元格。

通过 DataBinding 连接到我的文本框。

它可以工作,但我希望它像这样工作:

使用 DataBinding 将 3 个字母拆分到每个文本框中。但是怎么做呢?

【问题讨论】:

【参考方案1】:

我描述了一种可能性,但有不同的方法可以达到相同的结果。我发现与可能尝试使用Binding.Format 的其他解决方案相比,此解决方案引入的副作用最小(如果有的话),并将值“推送”到单个字符文本框中。我不喜欢这样的副作用。

您没有指定它,但我假设您有一个“数据”对象,其中公开了“Code_3”属性。我还假设这个对象实现了INotifyPropertyChanged,否则你必须解释你是如何具体实现数据绑定的,我会相应地调整我的答案。

基本思想是在您的数据对象上再增加 3 个属性,“code_3”属性值的每个字符一个。另一个假设是它总是 3 位数。

最后,将三个单字母文本框绑定到相应的三个新属性。

这些属性的实现方式可以是简单地使用String.LeftString.RightString.Mid,或者可能是code_3 字符串值的索引(mycode3[0] 等)。

最后一步是确保从数据对象的“Code_3”属性的设置器中调用这 3 个属性的设置器。这将为每个字符引发 INotifyPropertyChanged 事件,从而刷新文本框。您可能希望将 Binding 设置为“OnValueChanged”。

【讨论】:

以上是关于使用 DataBinding 将一个数据库文本拆分为 3 个文本框的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Postgresql 将文本拆分为多个字段?

将大型文本 (xyz) 数据库拆分为 x 等份

将多个空格从文本文件拆分为数组

用户定义的函数,有条件地将文本拆分为 Oracle 列

WPF DataBinding 与其他命名空间/类

使用 Databinding 和 maxlines 使 ellipsize 在 TextView 中不起作用