/
githubmirror
/
Files
Обзор
Документация
Войти
/
githubmirror
/
Files
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Files.App/Data/Items/ShelfItem.cs
57 строк
2 KB
d2dyno
Code Quality: Continued working on Shelf Pane (#17308)
04 май 2026, 07:57
Не верифицирован
04 май 2026, 07:57
2968da7
Код
Авторство
О чём код?
// Copyright (c) Files Community // Licensed under the MIT License. using Files.Shared.Utils; namespace Files.App.Data.Items { [Bindable(true)] public sealed partial class ShelfItem : ObservableObject, IWrapper<IStorableChild>, IAsyncInitialize { private readonly IImageService _imageService; private readonly ICollection<ShelfItem> _sourceCollection; [ObservableProperty] public partial IImage? Icon { get; set; } [ObservableProperty] public partial string? Name { get; set; } [ObservableProperty] public partial string? Path { get; set; } /// <inheritdoc/> public IStorableChild Inner { get; } public ShelfItem(IStorableChild storable, ICollection<ShelfItem> sourceCollection, IImage? icon = null) { _imageService = Ioc.Default.GetRequiredService<IImageService>(); _sourceCollection = sourceCollection; Inner = storable; Icon = icon; Name = storable.Name; Path = storable.Id; } /// <inheritdoc/> public async Task InitAsync(CancellationToken cancellationToken = default) { Icon = await _imageService.GetIconAsync(Inner, cancellationToken); } [RelayCommand] public async Task ViewInFolderAsync(CancellationToken cancellationToken) { var context = Ioc.Default.GetRequiredService<IContentPageContext>(); if (context.ShellPage is not { } shellPage) return; var parent = await Inner.GetParentAsync(cancellationToken); if (parent is null) return; await NavigationHelpers.OpenPath(parent.Id, shellPage); } [RelayCommand] public void Remove() { _sourceCollection.Remove(this); } } }