Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用数据绑定将一个数据库文本拆分为3个文本框_C#_Visual Studio_Winforms_Data Binding_Textbox - Fatal编程技术网

C# 使用数据绑定将一个数据库文本拆分为3个文本框

C# 使用数据绑定将一个数据库文本拆分为3个文本框,c#,visual-studio,winforms,data-binding,textbox,C#,Visual Studio,Winforms,Data Binding,Textbox,我有3个字母的数据库单元格 它通过数据绑定连接到我的文本框 它能工作,但我希望它能像这样工作: 使用数据绑定将3个字母拆分为每个文本框。但是如何实现呢?我描述了一种可能性,但是有不同的方法可以实现相同的结果。我发现,与其他可能尝试使用Binding.Format并将值“推”到单个字符文本框中的解决方案相比,此解决方案引入的副作用(如果有的话)最少。我不喜欢这种副作用 您没有指定它,但我假设您有一个“data”对象,其中暴露了“Code_3”属性。我还将假设此对象实现了INotifyProp

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

它通过数据绑定连接到我的文本框

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


使用数据绑定将3个字母拆分为每个文本框。但是如何实现呢?

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

您没有指定它,但我假设您有一个“data”对象,其中暴露了“Code_3”属性。我还将假设此对象实现了
INotifyPropertyChanged
,否则您将不得不解释如何具体实现数据绑定,我将相应地调整我的答案

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

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

这些属性的实现方式可以是简单地使用
String.Left
String.Right
String.Mid
,也可以是代码3字符串值的索引(mycode3[0]等等)

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