返回提交历史
Modified
XFEExtension.NetCore.WinUIHelper/Implements/Services/ListViewService.cs
+6
-0
Modified
XFEExtension.NetCore.WinUIHelper/Interface/Services/IListViewService.cs
+18
-1
Modified
XFEExtension.NetCore.WinUIHelper/XFEExtension.NetCore.WinUIHelper.csproj
+5
-3
XFEstudio/XFEExtension.NetCore.WinUIHelper
添加滚动条支持到列表视图服务
在 `ListViewService.cs` 中新增 `_scrollViewer` 字段和 `ListViewScrollViewer` 属性,以获取列表视图的滚动条。更新 `Initialize` 方法以处理 `Loaded` 事件,并添加事件处理方法 `ListView_Loaded` 和 `ListView_SelectionChanged`。 在 `IListViewService.cs` 中引入 `Microsoft.UI.Xaml.Media`,并新增 `ListViewScrollViewer` 属性和 `GetScrollViewer` 方法,以便获取列表视图的滚动条。
2bc331a
代码差异
3 个文件
+29
-4
@@ -6,17 +6,23 @@ namespace XFEExtension.NetCore.WinUIHelper.Implements.Services;
6
6
class ListViewService : IListViewService
7
7
{
8
8
private ListView? _listView;
9
private ScrollViewer? _scrollViewer;
9
10
10
11
public event SelectionChangedEventHandler? SelectionChanged;
11
12
12
13
public ListView ListView => _listView ?? throw new NullReferenceException();
13
14
15
public ScrollViewer? ListViewScrollViewer => _scrollViewer;
16
14
17
public void Initialize(ListView listView)
15
18
{
16
19
_listView = listView;
20
listView.Loaded += ListView_Loaded;
17
21
listView.SelectionChanged += ListView_SelectionChanged;
18
22
}
19
23
24
private void ListView_Loaded(object sender, RoutedEventArgs e) => _scrollViewer = ((IListViewService)this).GetScrollViewer();
25
20
26
private void ListView_SelectionChanged(object sender, SelectionChangedEventArgs e) => SelectionChanged?.Invoke(sender, e);
21
27
22
28
public void RevertSelect()
@@ -1,4 +1,6 @@
1
namespace XFEExtension.NetCore.WinUIHelper.Interface.Services;
1
using Microsoft.UI.Xaml.Media;
2
3
namespace XFEExtension.NetCore.WinUIHelper.Interface.Services;
2
4
3
5
/// <summary>
4
6
/// 列表视图服务接口
@@ -14,6 +16,10 @@ public interface IListViewService
14
16
/// </summary>
15
17
ListView ListView { get; }
16
18
/// <summary>
19
/// 列表视图滚动条
20
/// </summary>
21
ScrollViewer? ListViewScrollViewer { get; }
22
/// <summary>
17
23
/// 初始化列表视图服务
18
24
/// </summary>
19
25
/// <param name="listView"></param>
@@ -30,4 +36,15 @@ public interface IListViewService
30
36
/// 选择范围
31
37
/// </summary>
32
38
void SelectBetween();
39
/// <summary>
40
/// 获取列表视图滚动条
41
/// </summary>
42
/// <returns></returns>
43
ScrollViewer? GetScrollViewer()
44
{
45
if (VisualTreeHelper.GetChildrenCount(ListView) > 0)
46
return VisualTreeHelper.GetChild(ListView, 0) is Border border && border.Child is ScrollViewer scrollViewer ? scrollViewer : null;
47
else
48
return null;
49
}
33
50
}
@@ -9,7 +9,7 @@
9
9
<Nullable>enable</Nullable>
10
10
<GenerateDocumentationFile>True</GenerateDocumentationFile>
11
11
<Title>XFEExtension.NetCore.WinUIHelper</Title>
12
<Version>1.0.6</Version>
12
<Version>1.0.7</Version>
13
13
<Authors>XFEstudio</Authors>
14
14
<PackageIcon>logoIcon.png</PackageIcon>
15
15
<Description>WinUI的各种工具类,帮助开发者快速构建一个模块化的WinUI项目</Description>
@@ -17,9 +17,11 @@
17
17
<NeutralLanguage>zh-CN</NeutralLanguage>
18
18
<PackageReadmeFile>README.md</PackageReadmeFile>
19
19
<PackageReleaseNotes>
20
优化 ProfileHelper 类型获取逻辑
20
添加滚动条支持到列表视图服务
21
21
22
在 `ProfileHelper.cs` 文件中,将类型获取方式从 `Type.GetType` 修改为 `Assembly.GetEntryAssembly()?.GetType`,增强了类型查找的安全性。同时,改进了错误处理逻辑,确保在未找到类型或属性时返回默认值,而不是抛出异常。
22
在 `ListViewService.cs` 中新增 `_scrollViewer` 字段和 `ListViewScrollViewer` 属性,以获取列表视图的滚动条。更新 `Initialize` 方法以处理 `Loaded` 事件,并添加事件处理方法 `ListView_Loaded` 和 `ListView_SelectionChanged`。
23
24
在 `IListViewService.cs` 中引入 `Microsoft.UI.Xaml.Media`,并新增 `ListViewScrollViewer` 属性和 `GetScrollViewer` 方法,以便获取列表视图的滚动条。
23
25
24
26
</PackageReleaseNotes>
25
27
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>