如何将串行端口的传入字符串附加到文本框?

时间:2011-05-23 17:22:44

标签: c# xaml binding serial-port

我是一个急剧的初学者,我的第一个项目是串口的终端应用程序。传入的数据是ascii字符,它们有115 kbaud。

现在我想将每个传入的行绑定到wpf文本框。在我的串口类中,我使用IPropertyChanged事件,并成功将每个传入行绑定到文本框。但仅仅看到一行是不满意的,文本框的内容应该附加每个传入的行。我不想在我的串口类中收集字符串,只是在每个新的字符串中再次发送它们。我试过,结果很慢。

接下来我尝试使用绑定事件TargetUpdated来使用textbox.AppendText(incomingline)......

<TextBox 
Name="textBoxIncoming" 
Text="{Binding Path=Incoming, Mode=OneWay, NotifyOnTargetUpdated=True}" 
DataContext="{Binding NotifyOnTargetUpdated=True}"
IsReadOnly="True"
TargetUpdated="textBoxIncoming_TargetUpdated" 
... />`

结果是每个传入的行在文本框中显示两次,之前的行被清除。

有人知道,如何使用wpf绑定将文本附加到文本框?

1 个答案:

答案 0 :(得分:0)

单独使用绑定无法做到这一点。而是创建一个List,您可以在其中添加您收到的所有行。修改Incoming属性以返回string.Join(Environment.NewLine,listOfReceivedStrings)。