使用 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.Left
、String.Right
或String.Mid
,或者可能是code_3 字符串值的索引(mycode3[0] 等)。
最后一步是确保从数据对象的“Code_3”属性的设置器中调用这 3 个属性的设置器。这将为每个字符引发 INotifyPropertyChanged 事件,从而刷新文本框。您可能希望将 Binding 设置为“OnValueChanged”。
【讨论】:
以上是关于使用 DataBinding 将一个数据库文本拆分为 3 个文本框的主要内容,如果未能解决你的问题,请参考以下文章