private GamesGridViewColumn CreateColumn(GameField field, SortOrder?sortOrder, string cellTemplateName, string headerTemplateName, string bindingName = null) { // bindingName is there for backwards compatibility between P8 and P9 var column = new GamesGridViewColumn { Field = field, SortOrder = sortOrder }; BindingOperations.SetBinding( column, GridViewColumn.WidthProperty, new Binding($"{nameof(ViewSettings.ListViewColumns)}.{bindingName ?? field.ToString()}.{nameof(ListViewColumnProperty.Width)}") { Source = AppSettings.ViewSettings, Mode = BindingMode.TwoWay }); column.CellTemplate = Resources[cellTemplateName] as DataTemplate; if (!headerTemplateName.IsNullOrEmpty()) { column.HeaderTemplate = Resources[headerTemplateName] as DataTemplate; } return(column); }
private GamesGridViewColumn GetColumn(GameField field) { GamesGridViewColumn newColumn = null; if (field == GameField.Icon) { newColumn = CreateColumn(field, null, "CellTemplateIcon", null); } else if (field == GameField.Name) { newColumn = CreateColumn(field, SortOrder.Name, "CellTemplateName", "HeaderTemplateName"); } else if (field == GameField.Platforms) { newColumn = CreateColumn(field, SortOrder.Platforms, "CellTemplatePlatform", "HeaderTemplatePlatform", "Platform"); } else if (field == GameField.PluginId) { newColumn = CreateColumn(field, SortOrder.Library, "CellTemplateLibrary", "HeaderTemplateLibrary"); } else if (field == GameField.Developers) { newColumn = CreateColumn(field, SortOrder.Developers, "CellTemplateDevelopers", "HeaderTemplateDevelopers"); } else if (field == GameField.Publishers) { newColumn = CreateColumn(field, SortOrder.Publishers, "CellTemplatePublishers", "HeaderTemplatePublishers"); } else if (field == GameField.ReleaseDate) { newColumn = CreateColumn(field, SortOrder.ReleaseDate, "CellTemplateReleaseDate", "HeaderTemplateReleaseDate"); } else if (field == GameField.Genres) { newColumn = CreateColumn(field, SortOrder.Genres, "CellTemplateGenres", "HeaderTemplateGenres"); } else if (field == GameField.Categories) { newColumn = CreateColumn(field, SortOrder.Categories, "CellTemplateCategories", "HeaderTemplateCategories"); } else if (field == GameField.Features) { newColumn = CreateColumn(field, SortOrder.Features, "CellTemplateFeatures", "HeaderTemplateFeatures"); } else if (field == GameField.Tags) { newColumn = CreateColumn(field, SortOrder.Tags, "CellTemplateTags", "HeaderTemplateTags"); } else if (field == GameField.IsInstalled) { newColumn = CreateColumn(field, SortOrder.IsInstalled, "CellTemplateIsInstalled", "HeaderTemplateIsInstalled"); } else if (field == GameField.InstallDirectory) { newColumn = CreateColumn(field, SortOrder.InstallDirectory, "CellTemplateInstallDirectory", "HeaderTemplateInstallDirectory"); } else if (field == GameField.LastActivity) { newColumn = CreateColumn(field, SortOrder.LastActivity, "CellTemplateLastActivity", "HeaderTemplateLastActivity"); } else if (field == GameField.Playtime) { newColumn = CreateColumn(field, SortOrder.Playtime, "CellTemplatePlaytime", "HeaderTemplatePlaytime"); } else if (field == GameField.PlayCount) { newColumn = CreateColumn(field, SortOrder.PlayCount, "CellTemplatePlayCount", "HeaderTemplatePlayCount"); } else if (field == GameField.CompletionStatus) { newColumn = CreateColumn(field, SortOrder.CompletionStatus, "CellTemplateCompletionStatus", "HeaderTemplateCompletionStatus"); } else if (field == GameField.Series) { newColumn = CreateColumn(field, SortOrder.Series, "CellTemplateSeries", "HeaderTemplateSeries"); } else if (field == GameField.Version) { newColumn = CreateColumn(field, SortOrder.Version, "CellTemplateVersion", "HeaderTemplateVersion"); } else if (field == GameField.AgeRatings) { newColumn = CreateColumn(field, SortOrder.AgeRatings, "CellTemplateAgeRating", "HeaderTemplateAgeRating", "AgeRating"); } else if (field == GameField.Regions) { newColumn = CreateColumn(field, SortOrder.Regions, "CellTemplateRegion", "HeaderTemplateRegion", "Region"); } else if (field == GameField.Source) { newColumn = CreateColumn(field, SortOrder.Source, "CellTemplateSource", "HeaderTemplateSource"); } else if (field == GameField.Added) { newColumn = CreateColumn(field, SortOrder.Added, "CellTemplateAdded", "HeaderTemplateAdded"); } else if (field == GameField.Modified) { newColumn = CreateColumn(field, SortOrder.Modified, "CellTemplateModified", "HeaderTemplateModified"); } else if (field == GameField.UserScore) { newColumn = CreateColumn(field, SortOrder.UserScore, "CellTemplateUserScore", "HeaderTemplateUserScore"); } else if (field == GameField.CriticScore) { newColumn = CreateColumn(field, SortOrder.CriticScore, "CellTemplateCriticScore", "HeaderTemplateCriticScore"); } else if (field == GameField.CommunityScore) { newColumn = CreateColumn(field, SortOrder.CommunityScore, "CellTemplateCommunityScore", "HeaderTemplateCommunityScore"); } return(newColumn); }