示例#1
0
        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;
        }
示例#2
0
 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();
     };
 }
示例#3
0
            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());
            }
示例#4
0
 protected SelectionTagsList([NotNull] BaseAcManager <TObject> manager) : base(manager, true)
 {
 }
示例#5
0
 protected SelectionCategoriesList([NotNull] BaseAcManager <TObject> manager) : base(manager, false)
 {
 }