Код: Выделить всё
public partial class VM: ReactiveObject
{
[Reactive]
public partial string? Property { get; set; }
}
< /code>
Просмотр должен контролировать изменения имущества и что -то сделать. Хитрой является то, что представление будет загружено/выгружается при навигации по/из определенного FlyoutiTem
Код: Выделить всё
VM? vm;
public View()
{
Loaded += (s, e) =>
{
vm = BindingContext as VM;
vm?.PropertyChanged += VM_PropertyChanged;
};
Unloaded += (s, e) =>
{
vm?.PropertyChanged -= VM_PropertyChanged;
};
}
void VM_PropertyChanged(object? sender, PropertyChangedEventArgs e)
{
... // breakpoint here is always hit
}
< /code>
Здесь не является рабочего кода, абонент не обнаруживает изменения свойства после снова разгрузки и загрузки представления: < /p>
readonly CompositeDisposable disposables = [];
public View()
{
Loaded += (s, e) => Init();
Unloaded += (s, e) => disposables.Dispose();
}
void Init()
{
if (BindingContext is not VM vm)
return;
vm.WhenAnyValue(o => o.Property)
.Subscribe(property =>
{
// problem: not triggered on property changes after re-loading view
})
.DisposeWith(disposables);
}
Нагрузка /
Код: Выделить всё
Unload
Подробнее здесь: https://stackoverflow.com/questions/796 ... s-after-re