2016-12-13 3 views
0

In meinem Controller-Abschnitt habe ich die folgenden Dateien mit dem folgenden Code.Pass Radio Button Wert zwischen Controller

Dashboard -> DashboardBlock.xaml

In Hier habe ich eine Checkbox wie folgt aus:

<stackpanel> 
    <RadioButton x:Name="test" Content="Checkbox" /> 
</StackPanel> 

Nun, wenn dieses Kontrollkästchen aktiviert ist (Wahr oder Falsch) Ich möchte folgendes geschehen:

Controller:

SiteStatus -> SiteStatusControl.xaml

private void GetSiteStatus() 
{ 
    if (checkbox == true) 
    { 
     //Do something 
    } 
} 

Ich weiß, wie dies zu tun, wenn es in dem gleichen Controller ist. Wie Sie jedoch sehen können, befinden sich diese in separaten Controllern. Und ich weiß nicht, wie man Werte untereinander weitergibt.

EDIT:

Dies ist, wie die Seite aussieht:

How the page looks like

EDIT 2:

Dies ist, wie der Controller aussieht:

How the controller looks

Antwort

1

Wenn Sie "GetSiteStatus()" vom Dashboard aufrufen, übergeben Sie "checkbox.Checked" als Parameter. 'GetSiteStatus (checkbox.Checked) '

private void GetSiteStatus(bool checked) 
{ 
    if (checked == true) 
    { 
     //Do something 
    } 
} 

EDIT:

Also, wenn ich Sie verstanden haben.

In DashboardBlock.xaml

<StackPanel> 
    <RadioButton x:Name="filter1" Content="Filter 1 Checkbox" 
       CheckedChanged="FilterSelectionChanged"/> 
    <RadioButton x:Name="filter2" Content="Filter 2 Checkbox" 
       CheckedChanged="FilterSelectionChanged"/> 
    <RadioButton x:Name="filter3" Content="Filter 1 Checkbox" 
       CheckedChanged="FilterSelectionChanged"/> 
</StackPanel> 

FilterEnum

public enum Filter{ Filter1, Filter2, Filter3 } 

Armaturenbrett

public void FilterSelectionChanged(object sender, EventArgs e) 
{ 
    var radioButton = (RadioButton)sender; 
    if(radioButton.Name == "filter1") 
    { 
     siteStatusControl.UpdateFilter(Filter.Filter1); 
    } else if (radioButton.Name == "filter2") 
    { 
     siteStatusController.UpdateFilter(Filter.Filter2); 
    }else if (radioButton.Name == "filter3") 
    { 
     siteStatusControl.UpdateFilter(Filter.Filter3); 
    } 
} 

In SiteStatusControl

public void UpdateFilter(Filter filter) 
{ 
    switch(filter) 
    { 
     case Filter.Filter1: 
      //Do Something 
      break; 
     case Filter.Filter2: 
      //Do Something 
      break; 
     case Filter.Filter3: 
      //Do Something 
      break;   
    } 
} 

Dies ist nicht das sauberste Ding, aber ich denke, es wird eine Vorstellung davon geben, wie Sie es tun können.

+0

Nur eine Änderung vorgenommen. So sieht die Seite jetzt aus. Wenn ich das Kontrollkästchen auf meinem Dashboard-Controller ankreuze. Ich möchte den SiteStatus-Controller anpassen. – Mitch

+0

Bitte fügen Sie einige Informationen hinzu. Sprechen Sie darüber, ein Ereignis zu abonnieren, das ausgelöst wird, wenn sich ein RadioButton ändert?Oder wenn sich eine Auswahl eines RadioButtons in einer Gruppe geändert hat? Oder nennst du aktiv "GetSiteStatus"? –

+0

Im SiteStatus-Controller verwende ich die Klasse GetSiteStatus, um Ergebnisse aus meiner Datenbank zu erhalten. Jetzt möchte ich die Resultate filtern, die ich durch Benutzereingabe erhalten. Wenn der Benutzer also den Radiobutton im Dashboard-Controller überprüft, möchte ich, dass der GetSiteStatus überprüft, ob er aktiviert ist oder nicht. – Mitch