2016-06-28 12 views
1

Ich mache eine Upload-App für Windows Phone, die Funktion ist in der Klasse B (SecondPage), ich habe eine Upload-Aufgabe, wenn diese Aufgabe abgeschlossen ist, rufen Sie ein Ereignis und bemerken Klasse A (MainPage), dass die Aufgabe erledigt ist und mache ein paar Dinge, schaue mich auf der Seite um, ich habe einige Lösungen gefunden, aber sie helfen nicht sehr (ich denke das).So rufen Sie ein Ereignis von einer anderen Seite Windows Phone auf?

  1. Notify when event from another class is triggered

  2. Raise an event of a class from a different class in C#

  3. Understanding events and event handlers in C#

  4. C# event handling (compared to Java)

  5. C#: Need one of my classes to trigger an event in another class to update a text box

Hier mein Code in NochNeSeite sind

public sealed partial class SecondPage : Page 
{ 
    public event EventHandler clearHandler = delegate { }; 
    public SecondPage() 
    { 
     this.InitializeComponent(); 
    } 

    protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 
    } 

    private void btnClear_Tapped(object sender, TappedRoutedEventArgs e) 
    { 
     //some works 
     if (clearHandler != null) 
      clearHandler(this, null); 
    } 
} 

In Mainclass

public sealed partial class MainPage : Page 
{ 
    public MainPage() 
    { 
     this.InitializeComponent(); 
     this.NavigationCacheMode = NavigationCacheMode.Required; 
    } 

    protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 
     SecondPage sp = new SecondPage(); 
     sp.clearHandler += Sp_clearHandler; 
    } 

    private void Sp_clearHandler(object sender, EventArgs e) 
    { 
     txt.Text = ""; 
    } 

    private void btnJump_Tapped(object sender, TappedRoutedEventArgs e) 
    { 
     Frame.Navigate(typeof(SecondPage)); 
    } 
} 

Die TextBox namens txt nicht gelöscht ist, kann euch bitte helfen Sie mir, danke!

Antwort

0
you can use ObservableCollection for notify one page to another. 


public static ObservableCollection<string> YesNoStatus { get; internal set; } 

wo Sie THN

YesNoStatus = new ObservableCollection<string>(); 
     YesNoStatus.CollectionChanged += YesNoStatus_CollectionChanged; 

und seine Event-Methode wie benachrichtigen möchten: -

private void YesNoStatus_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) 
    { 
     ObservableCollection<string> obsSender = sender as ObservableCollection<string>; 
    } 

fügen etwas in dieser Sammlung nach der Operation ..thn es mitteilen wird abgeschlossen.