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

问题描述

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

IMG

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

IMG

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

IMG

使用DataBinding将3个字母拆分到每个文本框中。但是如何?

解决方法

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

您没有指定它,但是我假设您有一个显示“ Code_3”属性的“数据”对象。我还将假定该对象实现INotifyPropertyChanged,否则您将不得不解释如何具体实现数据绑定,并且我将相应地调整答案。

基本思想是在数据对象上具有3个以上的属性,每个“ code_3”属性值的字符都有一个。另一个假设是,它将始终为3位数字。

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

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

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