Привязка постоянно обновляемой строки с текстовым полем

Я хочу связать строку с текстовым полем. Строка постоянно обновляется в потоке:

String inputread;

    public event PropertyChangedEventHandler PropertyChanged;

    public string InputRead
    {
        get { return inputread; }
        set
        {
            if (Equals(inputread, value) == true) return;
            inputread = value;
            this.OnPropertyChanged(nameof(this.inputread));
        }


    }
    void threadFunc()
    {
        try
        {
            while (threadRunning)
            {
                plc.Read();
                InputRead =plc.InputImage[1].ToString();
                MessageBox.Show(InputRead);
            }
        }
        catch (ThreadAbortException)
        {
        }
    }
    protected void OnPropertyChanged(string name)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(name));
        }
    }

Позже в Обязательной декларации:

Binding bind = new Binding("InputRead");
bind.Mode = BindingMode.OneWay;
BindingOperations.SetBinding(newtextbox, TextBox.TextProperty, bind);

Я понимаю, что часть проблемы, почему это не работает (текстовое поле полностью пусто), заключается в том, что я не обновляю его каждый раз, когда запускается поток. Как мне это сделать? Также я подозреваю, что Декларация обязательна, я не знаю как.

Я прочитал статью MSDN о привязке данных, она помогла мне зайти так далеко.
Я прогуглил это, вот как я дошел до этого, также с помощью Stackoverflow ранее, все еще безуспешно.

РЕДАКТИРОВАТЬ: Я немного отредактировал код, но текстовое поле все еще пустое (даже 0). Я использую wpf! Если это проще, может ли кто-нибудь подсказать мне использовать dispatcher.invoke?

Спасибо!