009_DI-Elec/newFront/c#前端/SWS.Electrical/Control/ListBoxScrollToBottomBehavior.cs
2025-09-02 11:27:57 +08:00

28 lines
907 B
C#

using System.Collections.Specialized;
using System.Windows.Controls;
using Microsoft.Xaml.Behaviors;
namespace SWS.Electrical
{
public class ListBoxScrollToBottomBehavior : Behavior<ListBox>
{
protected override void OnAttached()
{
base.OnAttached();
((INotifyCollectionChanged)AssociatedObject.Items).CollectionChanged += OnCollectionChanged;
}
protected override void OnDetaching()
{
base.OnDetaching();
((INotifyCollectionChanged)AssociatedObject.Items).CollectionChanged -= OnCollectionChanged;
}
private void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
if (AssociatedObject.HasItems)
{
AssociatedObject.ScrollIntoView(AssociatedObject.Items[AssociatedObject.Items.Count - 1]);
}
}
}
}