diff --git a/Magazyn_Client/Magazyn/DataModels/Fruit.cs b/Magazyn_Client/Magazyn/DataModels/Fruit.cs index 47194f4..ad60ffd 100644 --- a/Magazyn_Client/Magazyn/DataModels/Fruit.cs +++ b/Magazyn_Client/Magazyn/DataModels/Fruit.cs @@ -1,8 +1,10 @@ -using System; +using Magazyn.Tools; +using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Windows; using System.Windows.Media.Imaging; namespace Magazyn.DataModels @@ -79,6 +81,7 @@ namespace Magazyn.DataModels public Fruit(int id, string name, int quantity, int quantityMax, float price, string imageLink) { + this.id = id; this.name = name; this.quantity = quantity; @@ -86,11 +89,7 @@ namespace Magazyn.DataModels this.price = price; this.imageLink = imageLink; - imageSource = new BitmapImage(); - imageSource.BeginInit(); - imageSource.UriSource = new Uri(imageLink); - imageSource.CacheOption = BitmapCacheOption.OnLoad; - imageSource.EndInit(); + imageSource = CacheImage.GetImageSource(new Uri(imageLink)); } - } + } } diff --git a/Magazyn_Client/Magazyn/Magazyn.csproj b/Magazyn_Client/Magazyn/Magazyn.csproj index 94e47cb..d2a77ae 100644 --- a/Magazyn_Client/Magazyn/Magazyn.csproj +++ b/Magazyn_Client/Magazyn/Magazyn.csproj @@ -67,6 +67,7 @@ + FruitView.xaml diff --git a/Magazyn_Client/Magazyn/MainWindow.xaml.cs b/Magazyn_Client/Magazyn/MainWindow.xaml.cs index 6902005..7d09588 100644 --- a/Magazyn_Client/Magazyn/MainWindow.xaml.cs +++ b/Magazyn_Client/Magazyn/MainWindow.xaml.cs @@ -20,6 +20,7 @@ using Newtonsoft.Json.Linq; using System.Net; using Magazyn.Windows; +using Magazyn.Tools; namespace Magazyn { diff --git a/Magazyn_Client/Magazyn/Tools/CacheImage.cs b/Magazyn_Client/Magazyn/Tools/CacheImage.cs new file mode 100644 index 0000000..309b869 --- /dev/null +++ b/Magazyn_Client/Magazyn/Tools/CacheImage.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media.Imaging; + +namespace Magazyn.Tools +{ + class CacheImage + { + static Dictionary dic = new Dictionary(); + + static public BitmapImage GetImageSource( Uri url ) + { + if (dic.Keys.Contains(url)) return dic[url]; + else + { + BitmapImage imageSource = new BitmapImage(); + imageSource.BeginInit(); + imageSource.UriSource = url; + imageSource.CacheOption = BitmapCacheOption.OnLoad; + imageSource.EndInit(); + dic.Add(url, imageSource); + return imageSource; + } + } + } +}