Можем ли мы обновить контекст данных элемента управления WPF в потоке, не являющемся пользовательским интерфейсом?
Скажем, у нас есть Label
с MyClass
в качестве контекста данных и привязка Content
к MyProperty
:
<Label Name="label" Content="{Binding MyProperty}" />
,
, где MyClass
- это просто:
public class MyClass : INotifyPropertyChanged
{
int _myField;
public int MyProperty
{
get
{
return _myField;
}
set
{
_myField = value;
PropertyChanged(this, new PropertyChangedEventArgs("MyProperty"));
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
В потоке без пользовательского интерфейса мы можем выполнить myClass.MyProperty = "updated"
, чтобы обновитьсодержимое ярлыка, но мы не можем сделать label.Content = "updated"
напрямую.Это правильно?
Мой собственный ответ :
Вот что я нашел: