using AIK.Service.IService; using Microsoft.Xaml.Behaviors; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; namespace AIK.Behaviors { public class ViewModelInitializationBehavior : Behavior { protected override void OnAttached() { base.OnAttached(); AssociatedObject.Loaded += OnViewLoaded; } protected override void OnDetaching() { AssociatedObject.Loaded -= OnViewLoaded; base.OnDetaching(); } private async void OnViewLoaded(object sender, RoutedEventArgs e) { if (AssociatedObject.DataContext is ILoadAware loadAware) { await loadAware.OnLoadedAsync(); } //else if (AssociatedObject.DataContext is IInitializable initializable) //{ // await initializable.InitializeAsync(); //} } } }