using Prism.Mvvm; using System.ComponentModel; namespace Store.Management.Framework.Controls; public abstract class ViewModelBase : BindableBase { private bool hasLoaded; internal void NotifyLoaded() { if (!hasLoaded) { hasLoaded = true; OnLoadedOnce(); } OnLoaded(); } /// 当前实例首次加载时调用,先于 OnLoaded。 protected virtual void OnLoadedOnce() { } protected internal virtual void OnLoaded() { } protected internal virtual void OnUnloaded() { } protected internal virtual void OnActivated() { } protected internal virtual void OnDeactivated() { } protected internal virtual void OnClosing(CancelEventArgs e) { } protected internal virtual void OnClosed() { } }