using Microsoft.UI.Xaml.Media;
namespace XFEExtension.NetCore.WinUIHelper.Interface.Services;
///
/// 列表视图服务接口
///
public interface IListViewService
{
///
/// 选中项改变事件
///
event SelectionChangedEventHandler SelectionChanged;
///
/// 列表视图
///
ListView ListView { get; }
///
/// 列表视图滚动条
///
ScrollViewer? ListViewScrollViewer { get; }
///
/// 初始化列表视图服务
///
///
void Initialize(ListView listView);
///
/// 选择所有项
///
void SelectAll() => ListView.SelectAll();
///
/// 反选
///
void RevertSelect();
///
/// 选择范围
///
void SelectBetween();
///
/// 获取列表视图滚动条
///
///
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;
}
}