using CommunityToolkit.Mvvm.Messaging;
using CommunityToolkit.Mvvm.Messaging.Messages;
using SJ.Controls.Extensions;
using System.Windows;
using System.Windows.Controls;

namespace BBWYB.Client.Views.Ware
{
    /// <summary>
    /// WareManager.xaml 的交互逻辑
    /// </summary>
    public partial class WareManager : Page
    {
        private ScrollViewer scrollviewer_ProductList;

        public WareManager()
        {
            InitializeComponent();
            this.Loaded += WareManager_Loaded;
            this.Unloaded += WareManager_Unloaded;
            //Messenger.Default.Register<string>(this, "WareManager_ProductListScrollToTop", (x) =>
            //{
            //    scrollviewer_ProductList.Dispatcher.Invoke(() => scrollviewer_ProductList.ScrollToTop());
            //});

            WeakReferenceMessenger.Default.Register<Message_WareManager_ProductListScrollToTop>(this, (o, x) =>
            {
                scrollviewer_ProductList.Dispatcher.Invoke(() => scrollviewer_ProductList.ScrollToTop());
            });
        }

        private void WareManager_Unloaded(object sender, RoutedEventArgs e)
        {
            //Messenger.Default.Unregister(this);
            WeakReferenceMessenger.Default.UnregisterAll(this);
        }

        private void WareManager_Loaded(object sender, RoutedEventArgs e)
        {
            scrollviewer_ProductList = listbox_productList.FindFirstVisualChild<ScrollViewer>();
        }
    }

    public class Message_WareManager_ProductListScrollToTop : ValueChangedMessage<object>
    {
        public Message_WareManager_ProductListScrollToTop(object value) : base(value)
        {
        }
    }
}