MatchPhotoLineManger.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using NBAManagment.Filter;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Windows.Controls;
  6. using System.Windows.Media;
  7. using System.Windows.Media.Imaging;
  8. namespace NBAManagement
  9. {
  10. public class MatchPhotoLineManger
  11. {
  12. private readonly IEnumerable<Image> imageViews;
  13. private readonly PagedEnumerable<byte[]> images;
  14. public MatchPhotoLineManger(IEnumerable<Image> imageViews, IEnumerable<byte[]> imageSources)
  15. {
  16. this.imageViews = imageViews;
  17. this.images = new PagedEnumerable<byte[]>(imageSources, imageViews.Count());
  18. UpdateViewImages();
  19. }
  20. public void NextPage()
  21. {
  22. images.NextPage();
  23. UpdateViewImages();
  24. }
  25. public void PriviusPage()
  26. {
  27. images.PriviusPage();
  28. UpdateViewImages();
  29. }
  30. private void UpdateViewImages()
  31. {
  32. var imagesArray = images.ToArray();
  33. int i = 0;
  34. foreach (var imageView in imageViews)
  35. {
  36. using (var memory = new MemoryStream(imagesArray[i]))
  37. {
  38. BitmapImage image = new BitmapImage();
  39. memory.Position = 0;
  40. image.BeginInit();
  41. image.CacheOption = BitmapCacheOption.OnLoad;
  42. image.StreamSource = memory;
  43. image.EndInit();
  44. image.Freeze();
  45. imageView.Source = image;
  46. i++;
  47. }
  48. }
  49. }
  50. }
  51. }