更新文本框wpf c#上的字符串更新
本文关键字:更新 字符串 wpf 文本 | 更新日期: 2023-09-27 18:07:25
我有以下情况:
一个文本框,当字符串值更改时更新,如日志字段。
我实现:XAML
...
<TextBox x:Name="txtLogView" Margin="10" Grid.Row="1" TextWrapping="Wrap">
<TextBox.Text>
<Binding Path="TextoLog" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged"/>
</TextBox.Text>
</TextBox>
...
SerialManager.cs
...
private StringBuilder logText;
...
public String TextoLog
{
get { return logText.ToString(); }
set { logText.Append(value); OnPropertyChanged("TextoLog"); }
}
...
private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
TextoLog = indata;
}
变量logText在新数据到达串行端口时更新,我看到在Textlog的"set"属性中,放置"get"属性永远不会被调用,文本框永远不会显示文本。
解决了在主窗口初始化时设置文本框的数据上下文的错误,如下所示:
private void InitDataModels()
{
SerialManager = new SerialManager();
cbPorts.DataContext = SerialManager;
txtLogView.DataContext = SerialManager;
this.DataContext = this;
}