查看激活
为了使WhenActivated ReactiveUI功能正常工作,您需要使用Avalonia.ReactiveUI
包中的自定义基类,例如ReactiveWindow<TViewModel>
或ReactiveUserControl<TViewModel>
。当然,您也可以手动在类中实现IViewFor<TViewModel>
接口,但请确保将ViewModel
存储在AvaloniaProperty
中。
激活示例
ViewModel.cs
此视图模型实现了IActivatableViewModel
接口。当相应的视图附加到可视树时,WhenActivated块内的代码将被调用。当相应的视图从可视树中分离时,复合可处置对象将被处置。ReactiveObject
是视图模型类的基类,并实现了INotifyPropertyChanged
。
public class ViewModel : ReactiveObject, IActivatableViewModel
{
public ViewModelActivator Activator { get; }
public ViewModel()
{
Activator = new ViewModelActivator();
this.WhenActivated((CompositeDisposable disposables) =>
{
/* 处理激活 */
Disposable
.Create(() => { /* 处理停用 */ })
.DisposeWith(disposables);
});
}
}