public static List <ItemFeature> GetAvailableItemFeatures(LibraryManagementSettingsViewModel PluginSettings, Game GameContext)
        {
            List <ItemFeature> Result = new List <ItemFeature>();

            if (GameContext != null && GameContext.Features != null)
            {
                Result = PluginSettings.Settings.ItemFeatures.Where(
                    x => GameContext.Features.Any(y => y.Name.IsEqual(x.NameAssociated))
                    ).ToList();
            }

            return(Result);
        }
        public PluginFeaturesIconList(IPlayniteAPI PlayniteApi, LibraryManagementSettingsViewModel PluginSettings)
        {
            this.PluginSettings = PluginSettings;

            InitializeComponent();
            this.DataContext = ControlDataContext;

            Task.Run(() =>
            {
                this.Dispatcher.BeginInvoke((Action) delegate
                {
                    PluginSettings.PropertyChanged         += PluginSettings_PropertyChanged;
                    PlayniteApi.Database.Games.ItemUpdated += Games_ItemUpdated;

                    // Apply settings
                    PluginSettings_PropertyChanged(null, null);
                });
            });
        }