В этом простом примере мы можем прочитать свойство StrTestExample в любом потоке.
В той же статье я вижу, что в нем говорится, что событие OnPropertyChanged автоматически маршалируется в поток пользовательского интерфейса.Таким образом, мы можем установить StrTestExample в любом потоке, и пользовательский интерфейс может обновляться.Также в другой статье говорится, что мы должны взять на себя ответственность за вызов OnPropertyChaned в потоке пользовательского интерфейса.
где это правильно?
Какие-либо документы из MSDN или из других источников, чтобы доказать это?
public class ViewModelBase : INotifyPropertyChanged
{
private volatile string _strTestExample;
public string StrTestExample
{
get { return _strTestExample; }
set
{
if (_strTestExample != value)
{
_strTestExample = value;
OnPropertyChanged(nameof(StrTestExample));
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
var propertyChanged = PropertyChanged;
propertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}