繁体   English   中英

在字符串更新上更新文本框WPF C#

[英]Update textbox wpf C# on string Update

我有以下情况:

一个文本框,当字符串值更改时会更新,例如日志字段。

我的实现:

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”属性,并且文本框从不显示文本。

解决了在主窗口初始化时设置文本框的Datacontext的错误,如下所示:

  private void InitDataModels()
        {
            SerialManager = new SerialManager();
            cbPorts.DataContext = SerialManager;
            txtLogView.DataContext = SerialManager;

            this.DataContext = this;
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM