问题描述
哪个通过DataBinding连接到我的文本框。
它可以工作,但是我希望它像这样工作:
使用DataBinding将3个字母拆分到每个文本框中。但是如何?
解决方法
我描述了一种可能性,但是可以使用不同的方法来达到相同的结果。与其他尝试使用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”。