У меня есть метод, в котором я изменяю свойство, которое вызывает изменение другого свойства, поддерживающее поле которого имеет тип ObservableAsPropertyHelper
. Дополнительное поле ObservableAsPropertyHelper
вызывает изменение вложенного представления, поэтому для его активации требуется некоторое время. Пока не будет активировано, у меня есть свойство null in, которое зависит от ObservableAsPropertyHelper
, и мне нужно подождать, но я не знаю как.
У меня есть образец кода.
public class MainViewModel : ReactiveObject
{
private string _carModelName;
private readonly ObservableAsPropertyHelper<ICarModel> _carViewModel;
public MainViewModel()
{
this.LoadConfigurationCommand = ReactiveCommand.Create(this.LoadConfiguration);
this.WhenAnyValue(x => x.CarModelName)
.Select<string, ICarModel>(x =>
{
switch (x)
{
case "VW":
return new VWModel();
case "BMW":
return new BMWViewModel();
default:
return null;
}
})
.ToProperty(this, x => x.CarViewModel, out _carViewModel);
this.CarModelName = "VW";
}
public string CarModelName
{
get => _carModelName;
set => this.RaiseAndSetIfChanged(ref _carModelName, value);
}
public ICarModel CarViewModel => _carViewModel.Value;
public ReactiveCommand<Unit, Unit> LoadConfigurationCommand { get; }
private LoadConfiguration()
{
// code which loads configuration
this.CarModelName = configurationCarModelName; // "BMW"
// now I want to call CarViewModel, but I have null, because modification of property is in progress
this.CarViewModel as ICarModel;
this.CarViewModel.Load(configurationObject);
// how to wait for CarViewModel update to call Method with parameters?
}
}