public void GenerateTableProductsToDisplay() { var prodcatDictionary = ProdCategories.ToDictionary(cat => cat.ProdCategoryId); var locDictionary = Locations.ToDictionary(loc => loc.LocationId); var locCatDictionary = LocationCategories.ToDictionary(locCat => locCat.LocCategoryId); var unitDictionary = Units.ToDictionary(u => u.UnitId); foreach (var product in Products) { ProductModelAllTablesMerged productModelAllTablesMerged = new ProductModelAllTablesMerged { ProductId = product.ProductId, ProductName = product.ProductName, Description = product.Description, ProdCategoryId = product.ProdCategoryId, LocationId = product.LocationId, GetInDate = product.GetInDate, BestBefore = product.BestBefore, Quantity = product.Quantity, UnitId = product.UnitId }; prodcatDictionary.TryGetValue(productModelAllTablesMerged.ProdCategoryId, out ProdCategoryModel prodcat); productModelAllTablesMerged.ProdCatName = prodcat.ProdCatName; locDictionary.TryGetValue(productModelAllTablesMerged.LocationId, out LocationModel loc); productModelAllTablesMerged.LocationName = loc.LocationName; locCatDictionary.TryGetValue(loc.LocCategoryId, out LocationCategoryModel locCat); productModelAllTablesMerged.LocCatName = locCat.LocCatName; productModelAllTablesMerged.LocCatId = locCat.LocCategoryId; unitDictionary.TryGetValue(productModelAllTablesMerged.UnitId, out UnitModel unit); productModelAllTablesMerged.UnitName = unit.UnitName; productModelAllTablesMerged.ColorSet = ColorDataBestBeforeColumn(productModelAllTablesMerged); ProductsAllTablesMerged.Add(productModelAllTablesMerged); //ToDo: notifyproperty? Is the gridview refreshed really? Test it! } }