XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension.NetCore.WinUIHelper

【DLL】WinUI的各种工具类,帮助开发者快速构建一个模块化的WinUI项目

公开
关注 0 Fork 0 Star 0
UTF-8
using Microsoft.UI.Xaml.Media;

namespace XFEExtension.NetCore.WinUIHelper.Interface.Services;

/// <summary>
/// 列表视图服务接口
/// </summary>
public interface IListViewService
{
    /// <summary>
    /// 选中项改变事件
    /// </summary>
    event SelectionChangedEventHandler SelectionChanged;
    /// <summary>
    /// 列表视图
    /// </summary>
    ListView ListView { get; }
    /// <summary>
    /// 列表视图滚动条
    /// </summary>
    ScrollViewer? ListViewScrollViewer { get; }
    /// <summary>
    /// 初始化列表视图服务
    /// </summary>
    /// <param name="listView"></param>
    void Initialize(ListView listView);
    /// <summary>
    /// 选择所有项
    /// </summary>
    void SelectAll() => ListView.SelectAll();
    /// <summary>
    /// 反选
    /// </summary>
    void RevertSelect();
    /// <summary>
    /// 选择范围
    /// </summary>
    void SelectBetween();
    /// <summary>
    /// 获取列表视图滚动条
    /// </summary>
    /// <returns></returns>
    ScrollViewer? GetScrollViewer()
    {
        if (VisualTreeHelper.GetChildrenCount(ListView) > 0)
            return VisualTreeHelper.GetChild(ListView, 0) is Border border && border.Child is ScrollViewer scrollViewer ? scrollViewer : null;
        else
            return null;
    }
}