diff --git a/src/MyNet.Wpf/Behaviors/ListViewLayoutBehavior.cs b/src/MyNet.Wpf/Behaviors/ListViewLayoutBehavior.cs index 66e6547..71e844f 100644 --- a/src/MyNet.Wpf/Behaviors/ListViewLayoutBehavior.cs +++ b/src/MyNet.Wpf/Behaviors/ListViewLayoutBehavior.cs @@ -11,7 +11,6 @@ using Microsoft.Xaml.Behaviors; using MyNet.UI.Layout; using MyNet.Utilities; -using MyNet.Wpf.Extensions; using MyNet.Wpf.Parameters; namespace MyNet.Wpf.Behaviors @@ -113,7 +112,14 @@ protected override void OnAttached() { base.OnAttached(); - AssociatedObject.OnLoading(_ => AddBehavior()); + if (AssociatedObject.IsLoaded) + { + AddBehavior(); + } + else + { + AssociatedObject.Loaded += AssociatedObject_Loaded; + } } protected override void OnDetaching() @@ -123,6 +129,19 @@ protected override void OnDetaching() RemoveBehavior(); } + private void AssociatedObject_Loaded(object sender, EventArgs e) + { + if (AssociatedObject.IsLoaded) + { + AssociatedObject.Loaded -= AssociatedObject_Loaded; + + if (AssociatedObject.IsLoaded) + AddBehavior(); + else + AssociatedObject.Loaded += AssociatedObject_Loaded; + } + } + private void AddBehavior() { if (AssociatedObject.View is GridView gridView) @@ -138,6 +157,7 @@ void resizeAndEnableSize() private void RemoveBehavior() { + AssociatedObject.Loaded -= AssociatedObject_Loaded; AssociatedObject.SizeChanged -= OnSizeChanged; if (ColumnLayouts is not null)