public void UpdateAssetTabControls(List <UserAsset> userAssets)
        {
            foreach (AssetRowControl rowControl in RowControls)
            {
                AbstractAsset asset     = rowControl.Asset;
                UserAsset?    userAsset = userAssets.Find(a => a.AssetName == asset.AssetName && a.AssetType == asset.AssetType);
                if (userAsset != null)
                {
                    asset.ImportValuesFromUserAsset(userAsset);

                    rowControl.UpdateGui();
                }
            }
        }
        private void OpenMod_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog {
                Filter = _modFileFilter
            };

            dialog.OpenModsRootFolder();

            bool?openResult = dialog.ShowDialog();

            if (!openResult.HasValue || !openResult.Value)
            {
                return;
            }

            List <UserAsset> userAssets = ModFileUtils.GetAssetsFromModFilePath(dialog.FileName);

            if (userAssets.Count == 0)
            {
                return;
            }

            foreach (AssetTabControl assetTabControl in App.Instance.MainWindow !.AssetTabControls)
            {
                foreach (AssetRowControl rowHandler in assetTabControl.RowControls)
                {
                    AbstractAsset asset     = rowHandler.Asset;
                    UserAsset?    userAsset = userAssets.Find(a => a.AssetName == asset.AssetName && a.AssetType == asset.AssetType);
                    if (userAsset != null)
                    {
                        asset.ImportValuesFromUserAsset(userAsset);

                        rowHandler.UpdateGui();
                    }
                }
            }
        }