Привязка постоянно обновляемой строки с текстовым полем
Я хочу связать строку с текстовым полем. Строка постоянно обновляется в потоке:
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?
Спасибо!