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);
}
}