Pytanie jak w temacie. Na zajęciach z programowania konieczne jest napisanie programu wczytującego z url obrazek, który następnie wrzuca go do kontrolki, generalnie ma to robić kilku krotnie ( w moim przypadku 3 razy). Przed i po każdym "nowym" wczytaniu obrazka ma byćwyświetlany odpowiedni komunikat. I teraz chodzi mi o to jak zmodyfikować kod aby odbywało się to asynchronicznie... Mam nadzieje że pytanie jest zrozumiałe, jestem bardzo początkującą "programistką" i staram sie jakoś sobie radzić samemu ale asynchroniczność to już dla mnie za wiele... a nie mam wystarczająco dużo czasu żeby to przećwiczyć, także proszę was bardziej doświadczonych kolegów o POMOC :).
Dodam jeszcze tylko że temat jest pilny bo muszę to umieć na jutrzejsze zajęcia także licze na szybką pomoc ;)
Oto kod odpowiedzialnyza inicjalizację okna, wyświetlenie komunikatów i wczytanie obrazu do wiersza:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_Initialized(object sender, EventArgs e)
{
var container = Configuration.ConfigureApp();
var address = container.Resolve<IAddress>();
Grid.SetRow(address.Control, 0);
var rdef = new RowDefinition();
rdef.Height = new GridLength(30);
this.Panel.RowDefinitions.Add(rdef);
this.Panel.Children.Add(address.Control);
// Wczytanie pierwszego
var image = container.Resolve<IRemoteImage>();
image.Start += new EventHandler(OnBeginLoading);
image.Koniec += new EventHandler(OnEndLoading);
Grid.SetRow(image.Control, 1);
this.Panel.RowDefinitions.Add(new RowDefinition());
this.Panel.Children.Add(image.Control);
// drugiego
var image2 = container.Resolve<IRemoteImage>();
image2.Start += new EventHandler(OnBeginLoading);
image2.Koniec += new EventHandler(OnEndLoading);
Grid.SetRow(image2.Control, 2);
this.Panel.RowDefinitions.Add(new RowDefinition());
this.Panel.Children.Add(image2.Control);
// trzeciego
var image3 = container.Resolve<IRemoteImage>();
image3.Start += new EventHandler(OnBeginLoading);
image3.Koniec += new EventHandler(OnEndLoading);
Grid.SetRow(image3.Control, 3);
this.Panel.RowDefinitions.Add(new RowDefinition());
this.Panel.Children.Add(image3.Control);
this.Panel.ShowGridLines = true;
}
// Komunikaty okna
private void OnEndLoading(object sender, EventArgs e)
{
MessageBox.Show("LOADING COMPLETED!!!");
}
private void OnBeginLoading(object sender, EventArgs e)
{
MessageBox.Show("LOADING PLEASE WAIT >>>");
}
}