using SpaceEngineersBlueprintEditor.Interface.Services; using System.Collections.ObjectModel; using System.Diagnostics.CodeAnalysis; using Windows.Foundation; namespace SpaceEngineersBlueprintEditor.Implements.Services; /// internal class ItemsViewDisplayService : IItemsViewDisplayService where T : class { private ItemsView? _itemsView; private Page? _page; public bool IsPageLoaded => _page is not null && _page.IsLoaded; public event TypedEventHandler? SelectionChanged; [MemberNotNull(nameof(_page), nameof(_itemsView))] public void Initialize(Page page, ItemsView itemsView) { _page = page; _itemsView = itemsView; _itemsView.SelectionChanged += (sender, args) => SelectionChanged?.Invoke(sender, args); } public void Select(T? item) { if (_itemsView is not null && _page is not null && _itemsView.ItemsSource is ObservableCollection itemSource && _page.IsLoaded) _itemsView.Select(item is not null ? itemSource.IndexOf(item) : 0); } }