protected SelectionList([NotNull] BaseAcManager <TObject> manager, bool isCacheable) { if (manager == null) { throw new ArgumentNullException(nameof(manager)); } TextSearch.SetTextPath(this, nameof(SelectCategoryBase.DisplayName)); ScrollViewer.SetHorizontalScrollBarVisibility(this, ScrollBarVisibility.Disabled); ScrollViewer.SetCanContentScroll(this, true); var baseLey = $@".SelectionList:{typeof(TObject).FullName}:{typeof(TItem).FullName}"; _scrollKey = $@"{baseLey}:Scroll"; _cacheKey = isCacheable ? $@"{baseLey}:Items" : null; _manager = manager; _baseCollection = manager.WrappersList; _items = new BetterObservableCollection <TItem>(Rebuild()); if (!manager.IsLoaded) { EnsureLoaded(isCacheable).Forget(); } Loaded += OnLoaded; Unloaded += OnUnloaded; PreviewKeyDown += OnPreviewKeyDown; }
public void Register <T>(BaseAcManager <T> manager, CupContentType type) where T : AcObjectNew, ICupSupportedObject { if (Instance == null) { return; } _managers.Add(type, manager); Instance.NewLatestVersion += (sender, args) => { if (args.Key.Type != type) { return; } var obj = manager.GetWrapperById(args.Key.Id); if (obj == null || !obj.IsLoaded) { return; } ((ICupSupportedObject)obj.Value).OnCupUpdateAvailableChanged(); }; }
private static T GetRandomObject <T>(BaseAcManager <T> manager, string currentId) where T : AcObjectNew { var id = manager.WrappersList.Where(x => x.Value.Enabled).Select(x => x.Id).ApartFrom(currentId).RandomElementOrDefault() ?? currentId; return(manager.GetById(id) ?? manager.GetDefault()); }
protected SelectionTagsList([NotNull] BaseAcManager <TObject> manager) : base(manager, true) { }
protected SelectionCategoriesList([NotNull] BaseAcManager <TObject> manager) : base(manager, false) { }